/* Generated by Cython 3.2.4 */

/* BEGIN: Cython Metadata
{
    "distutils": {
        "depends": [],
        "extra_compile_args": [
            "-Wextra",
            "-Waggregate-return",
            "-Wfloat-equal",
            "-Wformat",
            "-Wformat=2",
            "-Winit-self",
            "-Wmissing-format-attribute",
            "-Wmissing-include-dirs",
            "-Wnested-externs",
            "-Wold-style-definition",
            "-Wpointer-arith",
            "-Wstrict-prototypes",
            "-Wunknown-pragmas",
            "-Wwrite-strings",
            "-fno-exceptions"
        ],
        "libraries": [
            "selinux",
            "sepol"
        ],
        "library_dirs": [
            ".",
            "/usr/lib64",
            "/usr/lib",
            "/usr/local/lib"
        ],
        "name": "setools.policyrep",
        "sources": [
            "setools/policyrep.pyx"
        ]
    },
    "module_name": "setools.policyrep"
}
END: Cython Metadata */

#ifndef PY_SSIZE_T_CLEAN
#define PY_SSIZE_T_CLEAN
#endif /* PY_SSIZE_T_CLEAN */
/* InitLimitedAPI */
#if defined(Py_LIMITED_API)
  #if !defined(CYTHON_LIMITED_API)
  #define CYTHON_LIMITED_API 1
  #endif
#elif defined(CYTHON_LIMITED_API)
  #ifdef _MSC_VER
  #pragma message ("Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.")
  #else
  #warning Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.
  #endif
#endif

#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x03080000
    #error Cython requires Python 3.8+.
#else
#define __PYX_ABI_VERSION "3_2_4"
#define CYTHON_HEX_VERSION 0x030204F0
#define CYTHON_FUTURE_DIVISION 1
/* CModulePreamble */
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
#if defined(GRAALVM_PYTHON)
  /* For very preliminary testing purposes. Most variables are set the same as PyPy.
     The existence of this section does not imply that anything works or is even tested */
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 1
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
  #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_ASSUME_SAFE_SIZE
  #define CYTHON_ASSUME_SAFE_SIZE 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_AM_SEND
  #define CYTHON_USE_AM_SEND 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 1
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
  #undef CYTHON_IMMORTAL_CONSTANTS
  #define CYTHON_IMMORTAL_CONSTANTS 0
#elif defined(PYPY_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 1
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
  #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #ifndef CYTHON_ASSUME_SAFE_SIZE
    #define CYTHON_ASSUME_SAFE_SIZE 1
  #endif
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #if PY_VERSION_HEX < 0x03090000
    #undef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE (PYPY_VERSION_NUM >= 0x07030C00)
  #endif
  #undef CYTHON_USE_AM_SEND
  #define CYTHON_USE_AM_SEND 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_NUM >= 0x07031100)
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
  #undef CYTHON_IMMORTAL_CONSTANTS
  #define CYTHON_IMMORTAL_CONSTANTS 0
#elif defined(CYTHON_LIMITED_API)
  #ifdef Py_LIMITED_API
    #undef __PYX_LIMITED_VERSION_HEX
    #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
  #endif
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 1
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 1
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #endif
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
  #endif
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_ASSUME_SAFE_SIZE
  #define CYTHON_ASSUME_SAFE_SIZE 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 0
  #endif
  #ifndef CYTHON_USE_AM_SEND
    #define CYTHON_USE_AM_SEND (__PYX_LIMITED_VERSION_HEX >= 0x030A0000)
  #endif
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
  #ifndef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 1
  #endif
  #undef CYTHON_IMMORTAL_CONSTANTS
  #define CYTHON_IMMORTAL_CONSTANTS 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #ifdef Py_GIL_DISABLED
    #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 1
  #else
    #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #endif
  #if PY_VERSION_HEX < 0x030A0000
    #undef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #elif !defined(CYTHON_USE_TYPE_SLOTS)
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #ifndef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #ifndef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 0
  #elif !defined(CYTHON_USE_PYLIST_INTERNALS)
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING || PY_VERSION_HEX >= 0x030B00A2
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
  #elif !defined(CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_ASSUME_SAFE_SIZE
    #define CYTHON_ASSUME_SAFE_SIZE 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_FAST_GIL
    #define CYTHON_FAST_GIL 0
  #elif !defined(CYTHON_FAST_GIL)
    #define CYTHON_FAST_GIL (PY_VERSION_HEX < 0x030C00A6)
  #endif
  #ifndef CYTHON_METH_FASTCALL
    #define CYTHON_METH_FASTCALL 1
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #ifndef CYTHON_USE_SYS_MONITORING
    #define CYTHON_USE_SYS_MONITORING (PY_VERSION_HEX >= 0x030d00B1)
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 1
  #endif
  #ifndef CYTHON_USE_AM_SEND
    #define CYTHON_USE_AM_SEND 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS 0
  #elif !defined(CYTHON_USE_DICT_VERSIONS)
    #define CYTHON_USE_DICT_VERSIONS  (PY_VERSION_HEX < 0x030C00A5 && !CYTHON_USE_MODULE_STATE)
  #endif
  #ifndef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK 1
  #endif
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
  #endif
  #ifndef CYTHON_USE_FREELISTS
    #define CYTHON_USE_FREELISTS (!CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
  #endif
  #if defined(CYTHON_IMMORTAL_CONSTANTS) && PY_VERSION_HEX < 0x030C0000
    #undef CYTHON_IMMORTAL_CONSTANTS
    #define CYTHON_IMMORTAL_CONSTANTS 0  // definitely won't work
  #elif !defined(CYTHON_IMMORTAL_CONSTANTS)
    #define CYTHON_IMMORTAL_CONSTANTS (PY_VERSION_HEX >= 0x030C0000 && !CYTHON_USE_MODULE_STATE && CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
  #endif
#endif
#ifndef CYTHON_COMPRESS_STRINGS
  #define CYTHON_COMPRESS_STRINGS 1
#endif
#ifndef CYTHON_FAST_PYCCALL
#define CYTHON_FAST_PYCCALL  CYTHON_FAST_PYCALL
#endif
#ifndef CYTHON_VECTORCALL
#if CYTHON_COMPILING_IN_LIMITED_API
#define CYTHON_VECTORCALL  (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)
#else
#define CYTHON_VECTORCALL  (CYTHON_FAST_PYCCALL)
#endif
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(maybe_unused)
        #define CYTHON_UNUSED [[maybe_unused]]
      #endif
    #endif
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
  #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_USE_CPP_STD_MOVE
  #if defined(__cplusplus) && (\
    __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
    #define CYTHON_USE_CPP_STD_MOVE 1
  #else
    #define CYTHON_USE_CPP_STD_MOVE 0
  #endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#include <stdint.h>
typedef uintptr_t  __pyx_uintptr_t;
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(fallthrough)
        #define CYTHON_FALLTHROUGH [[fallthrough]]
      #endif
    #endif
    #ifndef CYTHON_FALLTHROUGH
      #if __has_cpp_attribute(clang::fallthrough)
        #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
      #elif __has_cpp_attribute(gnu::fallthrough)
        #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
      #endif
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif
#ifndef Py_UNREACHABLE
  #define Py_UNREACHABLE()  assert(0); abort()
#endif
#ifdef __cplusplus
  template <typename T>
  struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
  #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
#else
  #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
#endif
#if CYTHON_COMPILING_IN_PYPY == 1
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX < 0x030A0000)
#else
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX < 0x03090000)
#endif
#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))

/* CInitCode */
#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #elif defined(__GNUC__)
    #define CYTHON_INLINE __inline__
  #elif defined(_MSC_VER)
    #define CYTHON_INLINE __inline
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_INLINE inline
  #else
    #define CYTHON_INLINE
  #endif
#endif

/* PythonCompatibility */
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
#define __Pyx_DefaultClassType PyType_Type
#if CYTHON_COMPILING_IN_LIMITED_API
    #ifndef CO_OPTIMIZED
    static int CO_OPTIMIZED;
    #endif
    #ifndef CO_NEWLOCALS
    static int CO_NEWLOCALS;
    #endif
    #ifndef CO_VARARGS
    static int CO_VARARGS;
    #endif
    #ifndef CO_VARKEYWORDS
    static int CO_VARKEYWORDS;
    #endif
    #ifndef CO_ASYNC_GENERATOR
    static int CO_ASYNC_GENERATOR;
    #endif
    #ifndef CO_GENERATOR
    static int CO_GENERATOR;
    #endif
    #ifndef CO_COROUTINE
    static int CO_COROUTINE;
    #endif
#else
    #ifndef CO_COROUTINE
      #define CO_COROUTINE 0x80
    #endif
    #ifndef CO_ASYNC_GENERATOR
      #define CO_ASYNC_GENERATOR 0x200
    #endif
#endif
static int __Pyx_init_co_variables(void);
#if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE)
  #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type)
#else
  #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
  #define __Pyx_Py_Is(x, y)  Py_Is(x, y)
#else
  #define __Pyx_Py_Is(x, y) ((x) == (y))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
  #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
#else
  #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
  #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
#else
  #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
  #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
#else
  #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
#endif
#define __Pyx_NoneAsNull(obj)  (__Pyx_Py_IsNone(obj) ? NULL : (obj))
#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
#else
  #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef Py_TPFLAGS_SEQUENCE
  #define Py_TPFLAGS_SEQUENCE 0
#endif
#ifndef Py_TPFLAGS_MAPPING
  #define Py_TPFLAGS_MAPPING 0
#endif
#ifndef Py_TPFLAGS_IMMUTABLETYPE
  #define Py_TPFLAGS_IMMUTABLETYPE (1UL << 8)
#endif
#ifndef Py_TPFLAGS_DISALLOW_INSTANTIATION
  #define Py_TPFLAGS_DISALLOW_INSTANTIATION (1UL << 7)
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#ifndef METH_FASTCALL
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #if PY_VERSION_HEX >= 0x030d00A4
  #  define __Pyx_PyCFunctionFast PyCFunctionFast
  #  define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords
  #else
  #  define __Pyx_PyCFunctionFast _PyCFunctionFast
  #  define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
  #endif
#endif
#if CYTHON_METH_FASTCALL
  #define __Pyx_METH_FASTCALL METH_FASTCALL
  #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
  #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
#else
  #define __Pyx_METH_FASTCALL METH_VARARGS
  #define __Pyx_PyCFunction_FastCall PyCFunction
  #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
#endif
#if CYTHON_VECTORCALL
  #define __pyx_vectorcallfunc vectorcallfunc
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  PY_VECTORCALL_ARGUMENTS_OFFSET
  #define __Pyx_PyVectorcall_NARGS(n)  PyVectorcall_NARGS((size_t)(n))
#else
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  0
  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(n))
#endif
#if PY_VERSION_HEX >= 0x030900B1
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_CheckExact(func)
#else
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_Check(func)
#endif
#define __Pyx_CyOrPyCFunction_Check(func)  PyCFunction_Check(func)
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  (((PyCFunctionObject*)(func))->m_ml->ml_meth)
#elif !CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  PyCFunction_GET_FUNCTION(func)
#endif
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FLAGS(func)  (((PyCFunctionObject*)(func))->m_ml->ml_flags)
static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
    return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
}
#endif
static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void (*cfunc)(void)) {
#if CYTHON_COMPILING_IN_LIMITED_API
    return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
#else
    return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
#endif
}
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCFunction(func, cfunc)
#if PY_VERSION_HEX < 0x03090000 || (CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000)
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  ((void)m, PyType_FromSpecWithBases(s, b))
  typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
#else
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  PyType_FromModuleAndSpec(m, s, b)
  #define __Pyx_PyCMethod  PyCMethod
#endif
#ifndef METH_METHOD
  #define METH_METHOD 0x200
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
#elif CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) GraalPyFrame_SetLineNumber((frame), (lineno))
#elif CYTHON_COMPILING_IN_GRAAL
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) _PyFrame_SetLineNumber((frame), (lineno))
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyThreadState_Current PyThreadState_Get()
#elif !CYTHON_FAST_THREAD_STATE
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x030d00A1
  #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#endif
#if CYTHON_USE_MODULE_STATE
static CYTHON_INLINE void *__Pyx__PyModule_GetState(PyObject *op)
{
    void *result;
    result = PyModule_GetState(op);
    if (!result)
        Py_FatalError("Couldn't find the module state");
    return result;
}
#define __Pyx_PyModule_GetState(o) (__pyx_mstatetype *)__Pyx__PyModule_GetState(o)
#else
#define __Pyx_PyModule_GetState(op) ((void)op,__pyx_mstate_global)
#endif
#define __Pyx_PyObject_GetSlot(obj, name, func_ctype)  __Pyx_PyType_GetSlot(Py_TYPE((PyObject *) obj), name, func_ctype)
#define __Pyx_PyObject_TryGetSlot(obj, name, func_ctype) __Pyx_PyType_TryGetSlot(Py_TYPE(obj), name, func_ctype)
#define __Pyx_PyObject_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
#define __Pyx_PyObject_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
#if CYTHON_USE_TYPE_SLOTS
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((type)->name)
  #define __Pyx_PyType_TryGetSlot(type, name, func_ctype) __Pyx_PyType_GetSlot(type, name, func_ctype)
  #define __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype) (((type)->sub) ? ((type)->sub->name) : NULL)
  #define __Pyx_PyType_TryGetSubSlot(type, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype)
#else
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((func_ctype) PyType_GetSlot((type), Py_##name))
  #define __Pyx_PyType_TryGetSlot(type, name, func_ctype)\
    ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000 ||\
     (PyType_GetFlags(type) & Py_TPFLAGS_HEAPTYPE) || __Pyx_get_runtime_version() >= 0x030A0000) ?\
     __Pyx_PyType_GetSlot(type, name, func_ctype) : NULL)
  #define __Pyx_PyType_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSlot(obj, name, func_ctype)
  #define __Pyx_PyType_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSlot(obj, name, func_ctype)
#endif
#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
#define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStrWithError(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
    PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
    if (res == NULL) PyErr_Clear();
    return res;
}
#elif !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000
#define __Pyx_PyDict_GetItemStrWithError  PyDict_GetItemWithError
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#else
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
#if CYTHON_COMPILING_IN_PYPY
    return PyDict_GetItem(dict, name);
#else
    PyDictEntry *ep;
    PyDictObject *mp = (PyDictObject*) dict;
    long hash = ((PyStringObject *) name)->ob_shash;
    assert(hash != -1);
    ep = (mp->ma_lookup)(mp, name, hash);
    if (ep == NULL) {
        return NULL;
    }
    return ep->me_value;
#endif
}
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#endif
#if CYTHON_USE_TYPE_SLOTS
  #define __Pyx_PyType_GetFlags(tp)   (((PyTypeObject *)tp)->tp_flags)
  #define __Pyx_PyType_HasFeature(type, feature)  ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
#else
  #define __Pyx_PyType_GetFlags(tp)   (PyType_GetFlags((PyTypeObject *)tp))
  #define __Pyx_PyType_HasFeature(type, feature)  PyType_HasFeature(type, feature)
#endif
#define __Pyx_PyObject_GetIterNextFunc(iterator)  __Pyx_PyObject_GetSlot(iterator, tp_iternext, iternextfunc)
#if CYTHON_USE_TYPE_SPECS
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  {\
    PyTypeObject *type = Py_TYPE((PyObject*)obj);\
    assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
    PyObject_GC_Del(obj);\
    Py_DECREF(type);\
}
#else
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  PyObject_GC_Del(obj)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((void)u, 1114111U)
  #define __Pyx_PyUnicode_KIND(u)         ((void)u, (0))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)u)
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GetLength(u))
#else
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_READY(op)       (0)
  #else
    #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                                0 : _PyUnicode_Ready((PyObject *)(op)))
  #endif
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         ((int)PyUnicode_KIND(u))
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #else
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
    #else
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
    #endif
  #endif
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #if !defined(PyUnicode_DecodeUnicodeEscape)
    #define PyUnicode_DecodeUnicodeEscape(s, size, errors)  PyUnicode_Decode(s, size, "unicode_escape", errors)
  #endif
  #if !defined(PyUnicode_Contains)
    #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
  #endif
  #if !defined(PyByteArray_Check)
    #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
  #endif
  #if !defined(PyObject_Format)
    #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
  #endif
#endif
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  #define __Pyx_PySequence_ListKeepNew(obj)\
    (likely(PyList_CheckExact(obj) && PyUnstable_Object_IsUniquelyReferenced(obj)) ? __Pyx_NewRef(obj) : PySequence_List(obj))
#elif CYTHON_COMPILING_IN_CPYTHON
  #define __Pyx_PySequence_ListKeepNew(obj)\
    (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
#else
  #define __Pyx_PySequence_ListKeepNew(obj)  PySequence_List(obj)
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        __Pyx_IS_TYPE(obj, &PySet_Type)
#endif
#if PY_VERSION_HEX >= 0x030900A4
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
#else
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
#endif
enum __Pyx_ReferenceSharing {
  __Pyx_ReferenceSharing_DefinitelyUnique, // We created it so we know it's unshared - no need to check
  __Pyx_ReferenceSharing_OwnStrongReference,
  __Pyx_ReferenceSharing_FunctionArgument,
  __Pyx_ReferenceSharing_SharedReference, // Never trust it to be unshared because it's a global or similar
};
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX >= 0x030E0000
#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing)\
    (sharing == __Pyx_ReferenceSharing_DefinitelyUnique ? 1 :\
      (sharing == __Pyx_ReferenceSharing_FunctionArgument ? PyUnstable_Object_IsUniqueReferencedTemporary(o) :\
      (sharing == __Pyx_ReferenceSharing_OwnStrongReference ? PyUnstable_Object_IsUniquelyReferenced(o) : 0)))
#elif (CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING) || CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)sharing), Py_REFCNT(o) == 1)
#else
#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)o), ((void)sharing), 0)
#endif
#if CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
  #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
  #elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_PyList_GetItemRef(o, i) (likely((i) >= 0) ? PySequence_GetItem(o, i) : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
  #else
    #define __Pyx_PyList_GetItemRef(o, i) PySequence_ITEM(o, i)
  #endif
#elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS
  #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
  #else
    #define __Pyx_PyList_GetItemRef(o, i) __Pyx_XNewRef(PyList_GetItem(o, i))
  #endif
#else
  #define __Pyx_PyList_GetItemRef(o, i) __Pyx_NewRef(PyList_GET_ITEM(o, i))
#endif
#if CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS && !CYTHON_COMPILING_IN_LIMITED_API && CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PyList_GetItemRefFast(o, i, unsafe_shared) (__Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared) ?\
    __Pyx_NewRef(PyList_GET_ITEM(o, i)) : __Pyx_PyList_GetItemRef(o, i))
#else
  #define __Pyx_PyList_GetItemRefFast(o, i, unsafe_shared) __Pyx_PyList_GetItemRef(o, i)
#endif
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_PyDict_GetItemRef(dict, key, result) PyDict_GetItemRef(dict, key, result)
#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
  *result = PyObject_GetItem(dict, key);
  if (*result == NULL) {
    if (PyErr_ExceptionMatches(PyExc_KeyError)) {
      PyErr_Clear();
      return 0;
    }
    return -1;
  }
  return 1;
}
#else
static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
  *result = PyDict_GetItemWithError(dict, key);
  if (*result == NULL) {
    return PyErr_Occurred() ? -1 : 0;
  }
  Py_INCREF(*result);
  return 1;
}
#endif
#if defined(CYTHON_DEBUG_VISIT_CONST) && CYTHON_DEBUG_VISIT_CONST
  #define __Pyx_VISIT_CONST(obj)  Py_VISIT(obj)
#else
  #define __Pyx_VISIT_CONST(obj)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GET_ITEM(o, i)
  #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyList_GET_ITEM(o, i) PyList_GET_ITEM(o, i)
#else
  #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
  #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GetItem(o, i)
  #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
  #define __Pyx_PyList_GET_ITEM(o, i) PyList_GetItem(o, i)
#endif
#if CYTHON_ASSUME_SAFE_SIZE
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
  #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GET_LENGTH(o)
#else
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
  #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GetLength(o)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_InternFromString)
  #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
#endif
#define __Pyx_PyLong_FromHash_t PyLong_FromSsize_t
#define __Pyx_PyLong_AsHash_t   __Pyx_PyIndex_AsSsize_t
#if __PYX_LIMITED_VERSION_HEX >= 0x030A0000
    #define __Pyx_PySendResult PySendResult
#else
    typedef enum {
        PYGEN_RETURN = 0,
        PYGEN_ERROR = -1,
        PYGEN_NEXT = 1,
    } __Pyx_PySendResult;
#endif
#if CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030A00A3
  typedef __Pyx_PySendResult (*__Pyx_pyiter_sendfunc)(PyObject *iter, PyObject *value, PyObject **result);
#else
  #define __Pyx_pyiter_sendfunc sendfunc
#endif
#if !CYTHON_USE_AM_SEND
#define __PYX_HAS_PY_AM_SEND 0
#elif __PYX_LIMITED_VERSION_HEX >= 0x030A0000
#define __PYX_HAS_PY_AM_SEND 1
#else
#define __PYX_HAS_PY_AM_SEND 2  // our own backported implementation
#endif
#if __PYX_HAS_PY_AM_SEND < 2
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
#else
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
        __Pyx_pyiter_sendfunc am_send;
    } __Pyx_PyAsyncMethodsStruct;
    #define __Pyx_SlotTpAsAsync(s) ((PyAsyncMethods*)(s))
#endif
#if CYTHON_USE_AM_SEND && PY_VERSION_HEX < 0x030A00F0
    #define __Pyx_TPFLAGS_HAVE_AM_SEND (1UL << 21)
#else
    #define __Pyx_TPFLAGS_HAVE_AM_SEND (0)
#endif
#if PY_VERSION_HEX >= 0x03090000
#define __Pyx_PyInterpreterState_Get() PyInterpreterState_Get()
#else
#define __Pyx_PyInterpreterState_Get() PyThreadState_Get()->interp
#endif
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030A0000
#ifdef __cplusplus
extern "C"
#endif
PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize);
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_init_co_variable(PyObject *inspect, const char* name, int *write_to) {
    int value;
    PyObject *py_value = PyObject_GetAttrString(inspect, name);
    if (!py_value) return 0;
    value = (int) PyLong_AsLong(py_value);
    Py_DECREF(py_value);
    *write_to = value;
    return value != -1 || !PyErr_Occurred();
}
static int __Pyx_init_co_variables(void) {
    PyObject *inspect;
    int result;
    inspect = PyImport_ImportModule("inspect");
    result =
#if !defined(CO_OPTIMIZED)
        __Pyx_init_co_variable(inspect, "CO_OPTIMIZED", &CO_OPTIMIZED) &&
#endif
#if !defined(CO_NEWLOCALS)
        __Pyx_init_co_variable(inspect, "CO_NEWLOCALS", &CO_NEWLOCALS) &&
#endif
#if !defined(CO_VARARGS)
        __Pyx_init_co_variable(inspect, "CO_VARARGS", &CO_VARARGS) &&
#endif
#if !defined(CO_VARKEYWORDS)
        __Pyx_init_co_variable(inspect, "CO_VARKEYWORDS", &CO_VARKEYWORDS) &&
#endif
#if !defined(CO_ASYNC_GENERATOR)
        __Pyx_init_co_variable(inspect, "CO_ASYNC_GENERATOR", &CO_ASYNC_GENERATOR) &&
#endif
#if !defined(CO_GENERATOR)
        __Pyx_init_co_variable(inspect, "CO_GENERATOR", &CO_GENERATOR) &&
#endif
#if !defined(CO_COROUTINE)
        __Pyx_init_co_variable(inspect, "CO_COROUTINE", &CO_COROUTINE) &&
#endif
        1;
    Py_DECREF(inspect);
    return result ? 0 : -1;
}
#else
static int __Pyx_init_co_variables(void) {
    return 0;  // It's a limited API-only feature
}
#endif

/* MathInitCode */
#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
  #ifndef _USE_MATH_DEFINES
    #define _USE_MATH_DEFINES
  #endif
#endif
#include <math.h>
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif

#ifndef CYTHON_CLINE_IN_TRACEBACK_RUNTIME
#define CYTHON_CLINE_IN_TRACEBACK_RUNTIME 0
#endif
#ifndef CYTHON_CLINE_IN_TRACEBACK
#define CYTHON_CLINE_IN_TRACEBACK CYTHON_CLINE_IN_TRACEBACK_RUNTIME
#endif
#if CYTHON_CLINE_IN_TRACEBACK
#define __PYX_MARK_ERR_POS(f_index, lineno)  { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; __pyx_clineno = __LINE__; (void) __pyx_clineno; }
#else
#define __PYX_MARK_ERR_POS(f_index, lineno)  { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; (void) __pyx_clineno; }
#endif
#define __PYX_ERR(f_index, lineno, Ln_error) \
    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }

#ifdef CYTHON_EXTERN_C
    #undef __PYX_EXTERN_C
    #define __PYX_EXTERN_C CYTHON_EXTERN_C
#elif defined(__PYX_EXTERN_C)
    #ifdef _MSC_VER
    #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
    #else
    #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
    #endif
#else
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#define __PYX_HAVE__setools__policyrep
#define __PYX_HAVE_API__setools__policyrep
/* Early includes */
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <stdint.h>
#include <stdlib.h>
#include <sepol/handle.h>
#include <sepol/debug.h>
#include <sepol/policydb/services.h>
#include <sepol/policydb/flask_types.h>
#include <sepol/policydb/ebitmap.h>
#include <sepol/policydb/hashtab.h>
#include <sepol/policydb/symtab.h>
#include <sepol/policydb/avtab.h>
#include <sepol/policydb/mls_types.h>
#include <sepol/policydb/context.h>
#include <sepol/policydb/sidtab.h>
#include <sepol/policydb/conditional.h>

    #if defined(COND_EXPR_T_RENAME_BOOL_BOOLEAN)
      #define COND_EXPR_T_RENAME_BOOL_NAME boolean
    #else
      #define COND_EXPR_T_RENAME_BOOL_NAME bool
    #endif
    
#include <sepol/policydb/constraint.h>
#include <sepol/policydb/polcaps.h>
#include <sepol/policydb/policydb.h>
#include <sepol/policydb.h>
#include <selinux/selinux.h>
#include <selinux/label.h>
#include <stdarg.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/stat.h>
#include <arpa/inet.h>
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

#ifdef CYTHON_FREETHREADING_COMPATIBLE
#if CYTHON_FREETHREADING_COMPATIBLE
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USED
#else
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
#endif
#else
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
#endif
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 1
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __Pyx_PyObject_FromString __Pyx_PyUnicode_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyByteArray_AsString(s) PyByteArray_AS_STRING(s)
#else
    #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AsString(s))
    #define __Pyx_PyByteArray_AsString(s) PyByteArray_AsString(s)
#endif
#define __Pyx_PyObject_AsWritableString(s)    ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
#define __Pyx_PyUnicode_FromOrdinal(o)       PyUnicode_FromOrdinal((int)o)
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
static CYTHON_INLINE PyObject *__Pyx_NewRef(PyObject *obj) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_NewRef)
    return Py_NewRef(obj);
#else
    Py_INCREF(obj);
    return obj;
#endif
}
static CYTHON_INLINE PyObject *__Pyx_XNewRef(PyObject *obj) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_XNewRef)
    return Py_XNewRef(obj);
#else
    Py_XINCREF(obj);
    return obj;
#endif
}
static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b);
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t);
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
#if CYTHON_ASSUME_SAFE_MACROS
#define __Pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AS_DOUBLE(x)
#else
#define __Pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AsDouble(x)
#endif
#define __Pyx_PyFloat_AsFloat(x) ((float) __Pyx_PyFloat_AsDouble(x))
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_VERSION_HEX >= 0x030C00A7
  #ifndef _PyLong_SIGN_MASK
    #define _PyLong_SIGN_MASK 3
  #endif
  #ifndef _PyLong_NON_SIZE_BITS
    #define _PyLong_NON_SIZE_BITS 3
  #endif
  #define __Pyx_PyLong_Sign(x)  (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK)
  #define __Pyx_PyLong_IsNeg(x)  ((__Pyx_PyLong_Sign(x) & 2) != 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (!__Pyx_PyLong_IsNeg(x))
  #define __Pyx_PyLong_IsZero(x)  (__Pyx_PyLong_Sign(x) & 1)
  #define __Pyx_PyLong_IsPos(x)  (__Pyx_PyLong_Sign(x) == 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  (__Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
  #define __Pyx_PyLong_SignedDigitCount(x)\
        ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
  #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
    #define __Pyx_PyLong_IsCompact(x)     PyUnstable_Long_IsCompact((PyLongObject*) x)
    #define __Pyx_PyLong_CompactValue(x)  PyUnstable_Long_CompactValue((PyLongObject*) x)
  #else
    #define __Pyx_PyLong_IsCompact(x)     (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
    #define __Pyx_PyLong_CompactValue(x)  ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
  #endif
  typedef Py_ssize_t  __Pyx_compact_pylong;
  typedef size_t  __Pyx_compact_upylong;
  #else
  #define __Pyx_PyLong_IsNeg(x)  (Py_SIZE(x) < 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (Py_SIZE(x) >= 0)
  #define __Pyx_PyLong_IsZero(x)  (Py_SIZE(x) == 0)
  #define __Pyx_PyLong_IsPos(x)  (Py_SIZE(x) > 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  __Pyx_sst_abs(Py_SIZE(x))
  #define __Pyx_PyLong_SignedDigitCount(x)  Py_SIZE(x)
  #define __Pyx_PyLong_IsCompact(x)  (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
  #define __Pyx_PyLong_CompactValue(x)\
        ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
  typedef sdigit  __Pyx_compact_pylong;
  typedef digit  __Pyx_compact_upylong;
  #endif
  #if PY_VERSION_HEX >= 0x030C00A5
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->long_value.ob_digit)
  #else
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->ob_digit)
  #endif
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#elif __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeASCII(c_str, size, NULL)
#else
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
/* PretendToInitialize */
#ifdef __cplusplus
#if __cplusplus > 201103L
#include <type_traits>
#endif
template <typename T>
static void __Pyx_pretend_to_initialize(T* ptr) {
#if __cplusplus > 201103L
    if ((std::is_trivially_default_constructible<T>::value))
#endif
        *ptr = T();
    (void)ptr;
}
#else
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
#endif


#if !CYTHON_USE_MODULE_STATE
static PyObject *__pyx_m = NULL;
#endif
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * const __pyx_cfilenm = __FILE__;
static const char *__pyx_filename;

/* #### Code section: filename_table ### */

static const char* const __pyx_f[] = {
  "setools/policyrep.pyx",
  "setools/policyrep/util.pxi",
  "setools/policyrep/constraint.pxi",
  "setools/policyrep/mls.pxi",
  "setools/policyrep/object.pxi",
  "setools/policyrep/selinuxpolicy.pxi",
  "setools/policyrep/boolcond.pxi",
  "<stringsource>",
  "setools/policyrep/bounds.pxi",
  "setools/policyrep/context.pxi",
  "setools/policyrep/default.pxi",
  "setools/policyrep/filecontexts.pxi",
  "setools/policyrep/fscontext.pxi",
  "setools/policyrep/initsid.pxi",
  "setools/policyrep/mlsrule.pxi",
  "setools/policyrep/netcontext.pxi",
  "setools/policyrep/objclass.pxi",
  "setools/policyrep/polcap.pxi",
  "setools/policyrep/rbacrule.pxi",
  "setools/policyrep/role.pxi",
  "setools/policyrep/rule.pxi",
  "setools/policyrep/terule.pxi",
  "setools/policyrep/typeattr.pxi",
  "setools/policyrep/user.pxi",
  "setools/policyrep/xencontext.pxi",
  "libc/errno.pxd",
  "cpython/type.pxd",
};
/* #### Code section: utility_code_proto_before_types ### */
/* Atomics.proto (used by UnpackUnboundCMethod) */
#include <pythread.h>
#ifndef CYTHON_ATOMICS
    #define CYTHON_ATOMICS 1
#endif
#define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS
#define __PYX_GET_CYTHON_COMPILING_IN_CPYTHON_FREETHREADING() CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __pyx_atomic_int_type int
#define __pyx_nonatomic_int_type int
#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
                        (__STDC_VERSION__ >= 201112L) &&\
                        !defined(__STDC_NO_ATOMICS__))
    #include <stdatomic.h>
#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
                    (__cplusplus >= 201103L) ||\
                    (defined(_MSC_VER) && _MSC_VER >= 1700)))
    #include <atomic>
#endif
#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
                        (__STDC_VERSION__ >= 201112L) &&\
                        !defined(__STDC_NO_ATOMICS__) &&\
                       ATOMIC_INT_LOCK_FREE == 2)
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type atomic_int
    #define __pyx_atomic_ptr_type atomic_uintptr_t
    #define __pyx_nonatomic_ptr_type uintptr_t
    #define __pyx_atomic_incr_relaxed(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed)
    #define __pyx_atomic_incr_acq_rel(value) atomic_fetch_add_explicit(value, 1, memory_order_acq_rel)
    #define __pyx_atomic_decr_acq_rel(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel)
    #define __pyx_atomic_sub(value, arg) atomic_fetch_sub(value, arg)
    #define __pyx_atomic_int_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
    #define __pyx_atomic_load(value) atomic_load(value)
    #define __pyx_atomic_store(value, new_value) atomic_store(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) atomic_load_explicit(value, memory_order_relaxed)
    #define __pyx_atomic_pointer_load_acquire(value) atomic_load_explicit(value, memory_order_acquire)
    #define __pyx_atomic_pointer_exchange(value, new_value) atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
    #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
        #pragma message ("Using standard C atomics")
    #elif defined(__PYX_DEBUG_ATOMICS)
        #warning "Using standard C atomics"
    #endif
#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
                    (__cplusplus >= 201103L) ||\
\
                    (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\
                    ATOMIC_INT_LOCK_FREE == 2)
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type std::atomic_int
    #define __pyx_atomic_ptr_type std::atomic_uintptr_t
    #define __pyx_nonatomic_ptr_type uintptr_t
    #define __pyx_atomic_incr_relaxed(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed)
    #define __pyx_atomic_incr_acq_rel(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_acq_rel)
    #define __pyx_atomic_decr_acq_rel(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel)
    #define __pyx_atomic_sub(value, arg) std::atomic_fetch_sub(value, arg)
    #define __pyx_atomic_int_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
    #define __pyx_atomic_load(value) std::atomic_load(value)
    #define __pyx_atomic_store(value, new_value) std::atomic_store(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) std::atomic_load_explicit(value, std::memory_order_relaxed)
    #define __pyx_atomic_pointer_load_acquire(value) std::atomic_load_explicit(value, std::memory_order_acquire)
    #define __pyx_atomic_pointer_exchange(value, new_value) std::atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
    #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
        #pragma message ("Using standard C++ atomics")
    #elif defined(__PYX_DEBUG_ATOMICS)
        #warning "Using standard C++ atomics"
    #endif
#elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\
                    (__GNUC_MINOR__ > 1 ||\
                    (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2))))
    #define __pyx_atomic_ptr_type void*
    #define __pyx_nonatomic_ptr_type void*
    #define __pyx_atomic_incr_relaxed(value) __sync_fetch_and_add(value, 1)
    #define __pyx_atomic_incr_acq_rel(value) __sync_fetch_and_add(value, 1)
    #define __pyx_atomic_decr_acq_rel(value) __sync_fetch_and_sub(value, 1)
    #define __pyx_atomic_sub(value, arg) __sync_fetch_and_sub(value, arg)
    static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
        __pyx_nonatomic_int_type old = __sync_val_compare_and_swap(value, *expected, desired);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #define __pyx_atomic_load(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_store(value, new_value) __sync_lock_test_and_set(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_pointer_load_acquire(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_pointer_exchange(value, new_value) __sync_lock_test_and_set(value, (__pyx_atomic_ptr_type)new_value)
    static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
        __pyx_nonatomic_ptr_type old = __sync_val_compare_and_swap(value, *expected, desired);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #ifdef __PYX_DEBUG_ATOMICS
        #warning "Using GNU atomics"
    #endif
#elif CYTHON_ATOMICS && defined(_MSC_VER)
    #include <intrin.h>
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type long
    #define __pyx_atomic_ptr_type void*
    #undef __pyx_nonatomic_int_type
    #define __pyx_nonatomic_int_type long
    #define __pyx_nonatomic_ptr_type void*
    #pragma intrinsic (_InterlockedExchangeAdd, _InterlockedExchange, _InterlockedCompareExchange, _InterlockedCompareExchangePointer, _InterlockedExchangePointer)
    #define __pyx_atomic_incr_relaxed(value) _InterlockedExchangeAdd(value, 1)
    #define __pyx_atomic_incr_acq_rel(value) _InterlockedExchangeAdd(value, 1)
    #define __pyx_atomic_decr_acq_rel(value) _InterlockedExchangeAdd(value, -1)
    #define __pyx_atomic_sub(value, arg) _InterlockedExchangeAdd(value, -arg)
    static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
        __pyx_nonatomic_int_type old = _InterlockedCompareExchange(value, desired, *expected);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #define __pyx_atomic_load(value) _InterlockedExchangeAdd(value, 0)
    #define __pyx_atomic_store(value, new_value) _InterlockedExchange(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) *(void * volatile *)value
    #define __pyx_atomic_pointer_load_acquire(value) _InterlockedCompareExchangePointer(value, 0, 0)
    #define __pyx_atomic_pointer_exchange(value, new_value) _InterlockedExchangePointer(value, (__pyx_atomic_ptr_type)new_value)
    static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
        __pyx_atomic_ptr_type old = _InterlockedCompareExchangePointer(value, desired, *expected);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #ifdef __PYX_DEBUG_ATOMICS
        #pragma message ("Using MSVC atomics")
    #endif
#else
    #undef CYTHON_ATOMICS
    #define CYTHON_ATOMICS 0
    #ifdef __PYX_DEBUG_ATOMICS
        #warning "Not using atomics"
    #endif
#endif

/* CriticalSectionsDefinition.proto (used by CriticalSections) */
#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __Pyx_PyCriticalSection void*
#define __Pyx_PyCriticalSection2 void*
#define __Pyx_PyCriticalSection_End(cs)
#define __Pyx_PyCriticalSection2_End(cs)
#else
#define __Pyx_PyCriticalSection PyCriticalSection
#define __Pyx_PyCriticalSection2 PyCriticalSection2
#define __Pyx_PyCriticalSection_End PyCriticalSection_End
#define __Pyx_PyCriticalSection2_End PyCriticalSection2_End
#endif

/* CriticalSections.proto (used by ParseKeywordsImpl) */
#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __Pyx_PyCriticalSection_Begin(cs, arg) (void)(cs)
#define __Pyx_PyCriticalSection2_Begin(cs, arg1, arg2) (void)(cs)
#else
#define __Pyx_PyCriticalSection_Begin PyCriticalSection_Begin
#define __Pyx_PyCriticalSection2_Begin PyCriticalSection2_Begin
#endif
#if PY_VERSION_HEX < 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_BEGIN_CRITICAL_SECTION(o) {
#define __Pyx_END_CRITICAL_SECTION() }
#else
#define __Pyx_BEGIN_CRITICAL_SECTION Py_BEGIN_CRITICAL_SECTION
#define __Pyx_END_CRITICAL_SECTION Py_END_CRITICAL_SECTION
#endif

/* IncludeStructmemberH.proto (used by FixUpExtensionType) */
#include <structmember.h>

/* #### Code section: numeric_typedefs ### */
/* #### Code section: complex_type_declarations ### */
/* #### Code section: type_declarations ### */

/*--- Type declarations ---*/
struct __pyx_obj_7setools_9policyrep_FileContexts;
struct __pyx_obj_7setools_9policyrep_GenfsFiletype;
struct __pyx_obj_7setools_9policyrep_GenfsconIterator;
struct __pyx_obj_7setools_9policyrep_PolicyObject;
struct __pyx_obj_7setools_9policyrep_Conditional;
struct __pyx_obj_7setools_9policyrep_ConditionalOperator;
struct __pyx_obj_7setools_9policyrep_Bounds;
struct __pyx_obj_7setools_9policyrep_BaseConstraint;
struct __pyx_obj_7setools_9policyrep_Constraint;
struct __pyx_obj_7setools_9policyrep_Validatetrans;
struct __pyx_obj_7setools_9policyrep_ConstraintExpression;
struct __pyx_obj_7setools_9policyrep_ConstraintExprNode;
struct __pyx_obj_7setools_9policyrep_Context;
struct __pyx_obj_7setools_9policyrep_Default;
struct __pyx_obj_7setools_9policyrep_DefaultRange;
struct __pyx_obj_7setools_9policyrep_BaseMLSLevel;
struct __pyx_obj_7setools_9policyrep_LevelDecl;
struct __pyx_obj_7setools_9policyrep_Level;
struct __pyx_obj_7setools_9policyrep_Range;
struct __pyx_obj_7setools_9policyrep_PolicySymbol;
struct __pyx_obj_7setools_9policyrep_Boolean;
struct __pyx_obj_7setools_9policyrep_Category;
struct __pyx_obj_7setools_9policyrep_Sensitivity;
struct __pyx_obj_7setools_9policyrep_Common;
struct __pyx_obj_7setools_9policyrep_ObjClass;
struct __pyx_obj_7setools_9policyrep_Ocontext;
struct __pyx_obj_7setools_9policyrep_FSUse;
struct __pyx_obj_7setools_9policyrep_Genfscon;
struct __pyx_obj_7setools_9policyrep_InitialSID;
struct __pyx_obj_7setools_9policyrep_Ibendportcon;
struct __pyx_obj_7setools_9policyrep_Ibpkeycon;
struct __pyx_obj_7setools_9policyrep_Netifcon;
struct __pyx_obj_7setools_9policyrep_Nodecon;
struct __pyx_obj_7setools_9policyrep_Portcon;
struct __pyx_obj_7setools_9policyrep_PolicyIterator;
struct __pyx_obj_7setools_9policyrep_ConditionalIterator;
struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator;
struct __pyx_obj_7setools_9policyrep_ConstraintIterator;
struct __pyx_obj_7setools_9policyrep_ValidatetransIterator;
struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator;
struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator;
struct __pyx_obj_7setools_9policyrep_EbitmapIterator;
struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_HashtabIterator;
struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator;
struct __pyx_obj_7setools_9policyrep_TypeboundsIterator;
struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator;
struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator;
struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator;
struct __pyx_obj_7setools_9policyrep_MLSRuleIterator;
struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator;
struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator;
struct __pyx_obj_7setools_9policyrep_OcontextIterator;
struct __pyx_obj_7setools_9policyrep_FSUseIterator;
struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator;
struct __pyx_obj_7setools_9policyrep_InitialSIDIterator;
struct __pyx_obj_7setools_9policyrep_IbendportconIterator;
struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator;
struct __pyx_obj_7setools_9policyrep_NetifconIterator;
struct __pyx_obj_7setools_9policyrep_NodeconIterator;
struct __pyx_obj_7setools_9policyrep_PortconIterator;
struct __pyx_obj_7setools_9policyrep_PolicyCapability;
struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator;
struct __pyx_obj_7setools_9policyrep_RoleAllowIterator;
struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator;
struct __pyx_obj_7setools_9policyrep_Role;
struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator;
struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_PolicyRule;
struct __pyx_obj_7setools_9policyrep_MLSRule;
struct __pyx_obj_7setools_9policyrep_RoleAllow;
struct __pyx_obj_7setools_9policyrep_RoleTransition;
struct __pyx_obj_7setools_9policyrep_SELinuxPolicy;
struct __pyx_obj_7setools_9policyrep_BaseTERule;
struct __pyx_obj_7setools_9policyrep_AVRule;
struct __pyx_obj_7setools_9policyrep_XpermSet;
struct __pyx_obj_7setools_9policyrep_IoctlSet;
struct __pyx_obj_7setools_9policyrep_AVRuleXperm;
struct __pyx_obj_7setools_9policyrep_TERule;
struct __pyx_obj_7setools_9policyrep_FileNameTERule;
struct __pyx_obj_7setools_9policyrep_TERuleIterator;
struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator;
struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator;
struct __pyx_obj_7setools_9policyrep_BaseType;
struct __pyx_obj_7setools_9policyrep_Type;
struct __pyx_obj_7setools_9policyrep_TypeAttribute;
struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator;
struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator;
struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_User;
struct __pyx_obj_7setools_9policyrep_UserHashtabIterator;
struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_Devicetreecon;
struct __pyx_obj_7setools_9policyrep_Iomemcon;
struct __pyx_obj_7setools_9policyrep_Ioportcon;
struct __pyx_obj_7setools_9policyrep_Pcidevicecon;
struct __pyx_obj_7setools_9policyrep_Pirqcon;
struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator;
struct __pyx_obj_7setools_9policyrep_IomemconIterator;
struct __pyx_obj_7setools_9policyrep_IoportconIterator;
struct __pyx_obj_7setools_9policyrep_PcideviceconIterator;
struct __pyx_obj_7setools_9policyrep_PirqconIterator;
struct __pyx_defaults;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr;

/* "sepol.pxd":19
 * 
 * 
 * ctypedef void (*msg_callback)(void *varg, sepol_handle_t *handle, const char *fmt, ...)             # <<<<<<<<<<<<<<
 * 
 * 
*/
typedef void (*__pyx_t_5sepol_msg_callback)(void *, sepol_handle_t *, char const *, ...);

/* "setools/policyrep/filecontexts.pxi":17
 * 
 * 
 * cdef class FileContexts:             # <<<<<<<<<<<<<<
 *     cdef:
 *         selinux.selabel_handle *handle
*/
struct __pyx_obj_7setools_9policyrep_FileContexts {
  PyObject_HEAD
  struct selabel_handle *handle;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *policy;
  PyObject *path;
};


/* "setools/policyrep/fscontext.pxi":50
 * 
 * 
 * cdef class GenfsFiletype(int):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
struct __pyx_obj_7setools_9policyrep_GenfsFiletype {
  PyLongObject __pyx_base;
};


/* "setools/policyrep/fscontext.pxi":158
 *         return FSUse.factory(self.policy, self.ocon)
 * 
 * cdef class GenfsconIterator:             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for genfscon statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_GenfsconIterator {
  PyObject_HEAD
  struct __pyx_vtabstruct_7setools_9policyrep_GenfsconIterator *__pyx_vtab;
  genfs_t *head;
  genfs_t *curr;
  PyObject *ocon_iter;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *policy;
};


/* "setools/policyrep/object.pxi":10
 * # Classes
 * #
 * cdef class PolicyObject:             # <<<<<<<<<<<<<<
 * 
 *     """This is a base class for all policy objects."""
*/
struct __pyx_obj_7setools_9policyrep_PolicyObject {
  PyObject_HEAD
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject *__pyx_vtab;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *policy;
  uintptr_t key;
};


/* "setools/policyrep/boolcond.pxi":43
 * 
 * 
 * cdef class Conditional(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A conditional policy block."""
*/
struct __pyx_obj_7setools_9policyrep_Conditional {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *_postfix_expression;
  PyObject *booleans;
};


/* "setools/policyrep/boolcond.pxi":219
 * 
 * 
 * cdef class ConditionalOperator(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A conditional expression operator"""
*/
struct __pyx_obj_7setools_9policyrep_ConditionalOperator {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *text;
  int precedence;
  int unary;
  PyObject *evaluate;
};


/* "setools/policyrep/bounds.pxi":18
 * 
 * 
 * cdef class Bounds(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A bounds statement."""
*/
struct __pyx_obj_7setools_9policyrep_Bounds {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *ruletype;
  PyObject *parent;
  PyObject *child;
};


/* "setools/policyrep/constraint.pxi":27
 * 
 * 
 * cdef class BaseConstraint(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for constraint rules."""
*/
struct __pyx_obj_7setools_9policyrep_BaseConstraint {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *ruletype;
  PyObject *tclass;
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *expression;
};


/* "setools/policyrep/constraint.pxi":41
 * 
 * 
 * cdef class Constraint(BaseConstraint):             # <<<<<<<<<<<<<<
 * 
 *     """A constraint rule (constrain/mlsconstrain)."""
*/
struct __pyx_obj_7setools_9policyrep_Constraint {
  struct __pyx_obj_7setools_9policyrep_BaseConstraint __pyx_base;
  PyObject *perms;
};


/* "setools/policyrep/constraint.pxi":70
 * 
 * 
 * cdef class Validatetrans(BaseConstraint):             # <<<<<<<<<<<<<<
 * 
 *     """A validatetrans rule (validatetrans/mlsvalidatetrans)."""
*/
struct __pyx_obj_7setools_9policyrep_Validatetrans {
  struct __pyx_obj_7setools_9policyrep_BaseConstraint __pyx_base;
};


/* "setools/policyrep/constraint.pxi":94
 * 
 * 
 * cdef class ConstraintExpression(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
struct __pyx_obj_7setools_9policyrep_ConstraintExpression {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *_infix;
  PyObject *_postfix;
  int mls;
  PyObject *users;
  PyObject *roles;
  PyObject *types;
};


/* "setools/policyrep/constraint.pxi":249
 * 
 * 
 * cdef class ConstraintExprNode(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
struct __pyx_obj_7setools_9policyrep_ConstraintExprNode {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  uint32_t expression_type;
  uint32_t __pyx_operator;
  uint32_t _symbol_type;
  PyObject *_names;
  PyObject *_expression;
  int mls;
  int roles;
  int types;
  int users;
};


/* "setools/policyrep/context.pxi":7
 * #
 * 
 * cdef class Context(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A SELinux security context/security attribute."""
*/
struct __pyx_obj_7setools_9policyrep_Context {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_User *user;
  struct __pyx_obj_7setools_9policyrep_Role *role;
  struct __pyx_obj_7setools_9policyrep_Type *type_;
  struct __pyx_obj_7setools_9policyrep_Range *_range;
};


/* "setools/policyrep/default.pxi":75
 * # Classes
 * #
 * cdef class Default(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for default_* statements."""
*/
struct __pyx_obj_7setools_9policyrep_Default {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *ruletype;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
  PyObject *_default;
};


/* "setools/policyrep/default.pxi":149
 * 
 * 
 * cdef class DefaultRange(Default):             # <<<<<<<<<<<<<<
 * 
 *     """A default_range statement."""
*/
struct __pyx_obj_7setools_9policyrep_DefaultRange {
  struct __pyx_obj_7setools_9policyrep_Default __pyx_base;
  PyObject *default_range;
};


/* "setools/policyrep/mls.pxi":156
 * 
 * 
 * cdef class BaseMLSLevel(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for MLS levels."""
*/
struct __pyx_obj_7setools_9policyrep_BaseMLSLevel {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *_categories;
  struct __pyx_obj_7setools_9policyrep_Sensitivity *sensitivity;
};


/* "setools/policyrep/mls.pxi":194
 * 
 * 
 * cdef class LevelDecl(BaseMLSLevel):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
struct __pyx_obj_7setools_9policyrep_LevelDecl {
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel __pyx_base;
};


/* "setools/policyrep/mls.pxi":257
 * 
 * 
 * cdef class Level(BaseMLSLevel):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
struct __pyx_obj_7setools_9policyrep_Level {
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel __pyx_base;
};


/* "setools/policyrep/mls.pxi":381
 * 
 * 
 * cdef class Range(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS range"""
*/
struct __pyx_obj_7setools_9policyrep_Range {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Level *low;
  struct __pyx_obj_7setools_9policyrep_Level *high;
};


/* "setools/policyrep/object.pxi":69
 * 
 * 
 * cdef class PolicySymbol(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for policy symbols (declared objects: types, users, etc.)"""
*/
struct __pyx_obj_7setools_9policyrep_PolicySymbol {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *name;
};


/* "setools/policyrep/boolcond.pxi":22
 * # Classes
 * #
 * cdef class Boolean(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A Boolean."""
*/
struct __pyx_obj_7setools_9policyrep_Boolean {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  int state;
};


/* "setools/policyrep/mls.pxi":31
 * 
 * 
 * cdef class Category(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS category."""
*/
struct __pyx_obj_7setools_9policyrep_Category {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  uint32_t _value;
  PyObject *_aliases;
};


/* "setools/policyrep/mls.pxi":85
 * 
 * 
 * cdef class Sensitivity(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS sensitivity"""
*/
struct __pyx_obj_7setools_9policyrep_Sensitivity {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  uint32_t _value;
  PyObject *_aliases;
  struct __pyx_obj_7setools_9policyrep_LevelDecl *_leveldecl;
};


/* "setools/policyrep/objclass.pxi":14
 * # Classes
 * #
 * cdef class Common(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A common permission set."""
*/
struct __pyx_obj_7setools_9policyrep_Common {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  PyObject *_perm_table;
  PyObject *perms;
};


/* "setools/policyrep/objclass.pxi":68
 * 
 * 
 * cdef class ObjClass(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An object class."""
*/
struct __pyx_obj_7setools_9policyrep_ObjClass {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Common *_common;
  PyObject *_perm_table;
  PyObject *_defaults;
  PyObject *_constraints;
  PyObject *_validatetrans;
  PyObject *perms;
  uint32_t nprim;
};


/* "setools/policyrep/object.pxi":88
 * 
 * 
 * cdef class Ocontext(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for most in-policy labeling statements, (portcon, nodecon, etc.)"""
*/
struct __pyx_obj_7setools_9policyrep_Ocontext {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Context *context;
};


/* "setools/policyrep/fscontext.pxi":21
 * 
 * 
 * cdef class FSUse(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An fs_use_* statement."""
*/
struct __pyx_obj_7setools_9policyrep_FSUse {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *ruletype;
  PyObject *fs;
};


/* "setools/policyrep/fscontext.pxi":91
 * 
 * 
 * cdef class Genfscon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A genfscon statement."""
*/
struct __pyx_obj_7setools_9policyrep_Genfscon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *fs;
  PyObject *filetype;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
  PyObject *path;
};


/* "setools/policyrep/initsid.pxi":24
 * # Classes
 * #
 * cdef class InitialSID(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An initial SID statement."""
*/
struct __pyx_obj_7setools_9policyrep_InitialSID {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *name;
};


/* "setools/policyrep/netcontext.pxi":66
 * # Classes
 * #
 * cdef class Ibendportcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An ibendportcon statement."""
*/
struct __pyx_obj_7setools_9policyrep_Ibendportcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *name;
  unsigned int port;
};


/* "setools/policyrep/netcontext.pxi":96
 * 
 * 
 * cdef class Ibpkeycon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An ibpkeycon statement."""
*/
struct __pyx_obj_7setools_9policyrep_Ibpkeycon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *subnet_prefix;
  PyObject *pkeys;
};


/* "setools/policyrep/netcontext.pxi":154
 * 
 * 
 * cdef class Netifcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A netifcon statement."""
*/
struct __pyx_obj_7setools_9policyrep_Netifcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *netif;
  struct __pyx_obj_7setools_9policyrep_Context *packet;
};


/* "setools/policyrep/netcontext.pxi":192
 * 
 * 
 * cdef class Nodecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A nodecon statement."""
*/
struct __pyx_obj_7setools_9policyrep_Nodecon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *ip_version;
  PyObject *network;
};


/* "setools/policyrep/netcontext.pxi":297
 * 
 * 
 * cdef class Portcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A portcon statement."""
*/
struct __pyx_obj_7setools_9policyrep_Portcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *ports;
  PyObject *protocol;
};


/* "setools/policyrep/object.pxi":98
 * # Iterator classes
 * #
 * cdef class PolicyIterator:             # <<<<<<<<<<<<<<
 * 
 *     """Base class for all policy object iterators."""
*/
struct __pyx_obj_7setools_9policyrep_PolicyIterator {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *policy;
};


/* "setools/policyrep/boolcond.pxi":279
 * 
 * 
 * cdef class ConditionalIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditionals iterator."""
*/
struct __pyx_obj_7setools_9policyrep_ConditionalIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_ConditionalIterator *__pyx_vtab;
  cond_node_t *head;
  cond_node_t *curr;
};


/* "setools/policyrep/boolcond.pxi":321
 * 
 * 
 * cdef class ConditionalExprIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditional expression iterator."""
*/
struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_ConditionalExprIterator *__pyx_vtab;
  cond_expr_t *head;
  cond_expr_t *curr;
};


/* "setools/policyrep/constraint.pxi":421
 * # Iterators
 * #
 * cdef class ConstraintIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Constraint iterator."""
*/
struct __pyx_obj_7setools_9policyrep_ConstraintIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator *__pyx_vtab;
  constraint_node_t *head;
  constraint_node_t *curr;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
};


/* "setools/policyrep/constraint.pxi":465
 * 
 * 
 * cdef class ValidatetransIterator(ConstraintIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Validatetrans iterator."""
*/
struct __pyx_obj_7setools_9policyrep_ValidatetransIterator {
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator __pyx_base;
};


/* "setools/policyrep/constraint.pxi":488
 * 
 * 
 * cdef class ConstraintExprIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprIterator *__pyx_vtab;
  constraint_expr_t *head;
  constraint_expr_t *curr;
};


/* "setools/policyrep/objclass.pxi":247
 * 
 * 
 * cdef class PermissionVectorIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over an access (permission) vector"""
*/
struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_PermissionVectorIterator *__pyx_vtab;
  uint32_t vector;
  uint32_t curr;
  uint32_t perm_max;
  PyObject *perm_table;
};


/* "setools/policyrep/object.pxi":118
 * 
 * 
 * cdef class EbitmapIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
struct __pyx_obj_7setools_9policyrep_EbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  ebitmap_t *bmap;
  ebitmap_node_t *node;
  size_t curr;
  size_t bit;
};


/* "setools/policyrep/mls.pxi":664
 * # Ebitmap Iterators
 * #
 * cdef class CategoryEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a category ebitmap."""
*/
struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_CategoryEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/object.pxi":175
 * 
 * 
 * cdef class HashtabIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
struct __pyx_obj_7setools_9policyrep_HashtabIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *__pyx_vtab;
  hashtab_t *table;
  hashtab_node_t *node;
  hashtab_node_t *curr;
  unsigned int bucket;
};


/* "setools/policyrep/boolcond.pxi":261
 * # Iterators
 * #
 * cdef class BooleanHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over Booleans in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/bounds.pxi":57
 * # Iterators
 * #
 * cdef class TypeboundsIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over typebounds rules in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_TypeboundsIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/mls.pxi":490
 * # Hash Table Iterators
 * #
 * cdef class CategoryHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over categories in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/mls.pxi":547
 * 
 * 
 * cdef class SensitivityHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over sensitivity in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/mls.pxi":604
 * 
 * 
 * cdef class LevelDeclHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over level declarations in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/mlsrule.pxi":76
 * # Iterators
 * #
 * cdef class MLSRuleIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over MLS rules in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_MLSRuleIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/objclass.pxi":211
 * # Iterators
 * #
 * cdef class CommonHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over commons in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/objclass.pxi":229
 * 
 * 
 * cdef class ObjClassHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over roles in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/object.pxi":241
 * 
 * 
 * cdef class OcontextIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
struct __pyx_obj_7setools_9policyrep_OcontextIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  ocontext_t *head;
  ocontext_t *ocon;
  ocontext_t *curr;
};


/* "setools/policyrep/fscontext.pxi":142
 * # Iterators
 * #
 * cdef class FSUseIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for fs_use_* statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_FSUseIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_FSUseIterator *__pyx_vtab;
};


/* "setools/policyrep/fscontext.pxi":210
 * 
 * 
 * cdef class GenfsconOcontextIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Sub-iterator for genfscon statements."""
*/
struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_GenfsconOcontextIterator *__pyx_vtab;
  PyObject *fs;
};


/* "setools/policyrep/initsid.pxi":56
 * 
 * 
 * cdef class InitialSIDIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for initial SID statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_InitialSIDIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_InitialSIDIterator *__pyx_vtab;
};


/* "setools/policyrep/netcontext.pxi":330
 * # Iterators
 * #
 * cdef class IbendportconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ibendportcon statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_IbendportconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_IbendportconIterator *__pyx_vtab;
};


/* "setools/policyrep/netcontext.pxi":347
 * 
 * 
 * cdef class IbpkeyconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ibpkeycon statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_IbpkeyconIterator *__pyx_vtab;
};


/* "setools/policyrep/netcontext.pxi":364
 * 
 * 
 * cdef class NetifconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for netifcon statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_NetifconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_NetifconIterator *__pyx_vtab;
};


/* "setools/policyrep/netcontext.pxi":381
 * 
 * 
 * cdef class NodeconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for nodecon statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_NodeconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_NodeconIterator *__pyx_vtab;
  PyObject *ip_version;
};


/* "setools/policyrep/netcontext.pxi":401
 * 
 * 
 * cdef class PortconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for portcon statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_PortconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_PortconIterator *__pyx_vtab;
};


/* "setools/policyrep/polcap.pxi":8
 * 
 * 
 * cdef class PolicyCapability(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A policy capability."""
*/
struct __pyx_obj_7setools_9policyrep_PolicyCapability {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
};


/* "setools/policyrep/polcap.pxi":34
 * 
 * 
 * cdef class PolicyCapabilityIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for policy capability statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapabilityIterator *__pyx_vtab;
};


/* "setools/policyrep/rbacrule.pxi":131
 * # Iterators
 * #
 * cdef class RoleAllowIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Role allow rule iterator."""
*/
struct __pyx_obj_7setools_9policyrep_RoleAllowIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_RoleAllowIterator *__pyx_vtab;
  role_allow_t *head;
  role_allow_t *curr;
};


/* "setools/policyrep/rbacrule.pxi":173
 * 
 * 
 * cdef class RoleTransitionIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Role transition rule iterator."""
*/
struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_RoleTransitionIterator *__pyx_vtab;
  role_trans_t *head;
  role_trans_t *curr;
};


/* "setools/policyrep/role.pxi":8
 * 
 * 
 * cdef class Role(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A role."""
*/
struct __pyx_obj_7setools_9policyrep_Role {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  PyObject *_types;
};


/* "setools/policyrep/role.pxi":51
 * # Iterator Classes
 * #
 * cdef class RoleHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over roles in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/role.pxi":69
 * 
 * 
 * cdef class RoleEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a role ebitmap."""
*/
struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_RoleEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/rule.pxi":7
 * #
 * 
 * cdef class PolicyRule(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """This is base class for policy rules."""
*/
struct __pyx_obj_7setools_9policyrep_PolicyRule {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *ruletype;
  PyObject *source;
  PyObject *target;
  PyObject *origin;
  int extended;
};


/* "setools/policyrep/mlsrule.pxi":15
 * 
 * 
 * cdef class MLSRule(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS rule."""
*/
struct __pyx_obj_7setools_9policyrep_MLSRule {
  struct __pyx_obj_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
  PyObject *rng;
};


/* "setools/policyrep/rbacrule.pxi":24
 * 
 * 
 * cdef class RoleAllow(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """A role allow rule."""
*/
struct __pyx_obj_7setools_9policyrep_RoleAllow {
  struct __pyx_obj_7setools_9policyrep_PolicyRule __pyx_base;
};


/* "setools/policyrep/rbacrule.pxi":69
 * 
 * 
 * cdef class RoleTransition(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """A role_transition rule."""
*/
struct __pyx_obj_7setools_9policyrep_RoleTransition {
  struct __pyx_obj_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
  struct __pyx_obj_7setools_9policyrep_Role *dft;
};


/* "setools/policyrep/selinuxpolicy.pxi":26
 * 
 * 
 * cdef class SELinuxPolicy:             # <<<<<<<<<<<<<<
 *     cdef:
 *         sepol.sepol_policydb *handle
*/
struct __pyx_obj_7setools_9policyrep_SELinuxPolicy {
  PyObject_HEAD
  struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *__pyx_vtab;
  struct sepol_policydb *handle;
  struct sepol_handle *sh;
  cat_datum_t **cat_val_to_struct;
  level_datum_t **level_val_to_struct;
  PyObject *log;
  PyObject *constraint_counts;
  PyObject *terule_counts;
  PyObject *type_alias_map;
  PyObject *category_alias_map;
  PyObject *sensitivity_alias_map;
  PyObject *__weakref__;
  PyObject *path;
  PyObject *handle_unknown;
  PyObject *target_platform;
  unsigned int version;
  int mls;
};


/* "setools/policyrep/terule.pxi":34
 * 
 * 
 * cdef class BaseTERule(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for TE rules."""
*/
struct __pyx_obj_7setools_9policyrep_BaseTERule {
  struct __pyx_obj_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
  PyObject *rule_string;
  PyObject *_xperm_type;
  struct __pyx_obj_7setools_9policyrep_Conditional *_conditional;
  int _conditional_block;
};


/* "setools/policyrep/terule.pxi":115
 * 
 * 
 * cdef class AVRule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """An access vector type enforcement rule."""
*/
struct __pyx_obj_7setools_9policyrep_AVRule {
  struct __pyx_obj_7setools_9policyrep_BaseTERule __pyx_base;
  PyObject *perms;
};


/* "setools/policyrep/terule.pxi":230
 * 
 * 
 * cdef class XpermSet(frozenset):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
struct __pyx_obj_7setools_9policyrep_XpermSet {
  PySetObject __pyx_base;
};


/* "setools/policyrep/terule.pxi":284
 * 
 * 
 * cdef class IoctlSet(XpermSet):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, *args, **kwargs):
*/
struct __pyx_obj_7setools_9policyrep_IoctlSet {
  struct __pyx_obj_7setools_9policyrep_XpermSet __pyx_base;
};


/* "setools/policyrep/terule.pxi":292
 * 
 * 
 * cdef class AVRuleXperm(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """An extended permission access vector type enforcement rule."""
*/
struct __pyx_obj_7setools_9policyrep_AVRuleXperm {
  struct __pyx_obj_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_XpermSet *perms;
};


/* "setools/policyrep/terule.pxi":416
 * 
 * 
 * cdef class TERule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """A type_* type enforcement rule."""
*/
struct __pyx_obj_7setools_9policyrep_TERule {
  struct __pyx_obj_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Type *dft;
};


/* "setools/policyrep/terule.pxi":489
 * 
 * 
 * cdef class FileNameTERule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """A type_transition type enforcement rule with filename."""
*/
struct __pyx_obj_7setools_9policyrep_FileNameTERule {
  struct __pyx_obj_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Type *dft;
  PyObject *filename;
};


/* "setools/policyrep/terule.pxi":562
 * # Iterators
 * #
 * cdef class TERuleIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for access vector tables."""
*/
struct __pyx_obj_7setools_9policyrep_TERuleIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *__pyx_vtab;
  avtab_t *table;
  avtab_ptr_t node;
  unsigned int bucket;
  PyObject *conditional;
  PyObject *cond_block;
};


/* "setools/policyrep/terule.pxi":659
 * 
 * 
 * cdef class ConditionalTERuleIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditional TE rule iterator."""
*/
struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_ConditionalTERuleIterator *__pyx_vtab;
  cond_av_list_t *head;
  cond_av_list_t *curr;
  PyObject *conditional;
  PyObject *conditional_block;
};


/* "setools/policyrep/terule.pxi":732
 * 
 * 
 * cdef class FileNameTERuleIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over FileNameTERules in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
  filename_trans_datum_t *datum;
  struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *stypei;
};


/* "setools/policyrep/typeattr.pxi":32
 * # Classes
 * #
 * cdef class BaseType(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """Type/attribute base class."""
*/
struct __pyx_obj_7setools_9policyrep_BaseType {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
};


/* "setools/policyrep/typeattr.pxi":49
 * 
 * 
 * cdef class Type(BaseType):             # <<<<<<<<<<<<<<
 * 
 *     """A type."""
*/
struct __pyx_obj_7setools_9policyrep_Type {
  struct __pyx_obj_7setools_9policyrep_BaseType __pyx_base;
  PyObject *ispermissive;
  PyObject *_aliases;
  PyObject *_attrs;
  uint32_t value;
};


/* "setools/policyrep/typeattr.pxi":119
 * 
 * 
 * cdef class TypeAttribute(BaseType):             # <<<<<<<<<<<<<<
 * 
 *     """A type attribute."""
*/
struct __pyx_obj_7setools_9policyrep_TypeAttribute {
  struct __pyx_obj_7setools_9policyrep_BaseType __pyx_base;
  PyObject *_types;
};


/* "setools/policyrep/typeattr.pxi":191
 * 
 * 
 * cdef class TypeHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over types in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/typeattr.pxi":242
 * 
 * 
 * cdef class TypeAttributeHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over type attributes in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/typeattr.pxi":292
 * # Ebitmap Iterator Classes
 * #
 * cdef class TypeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type ebitmap."""
*/
struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_TypeEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/typeattr.pxi":320
 * 
 * 
 * cdef class TypeAttributeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type attribute ebitmap."""
*/
struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/typeattr.pxi":349
 * 
 * 
 * cdef class TypeOrAttributeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type or type attribute ebitmap."""
*/
struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/user.pxi":10
 * 
 * 
 * cdef class User(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A user."""
*/
struct __pyx_obj_7setools_9policyrep_User {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  PyObject *roles;
  struct __pyx_obj_7setools_9policyrep_Level *_level;
  struct __pyx_obj_7setools_9policyrep_Range *_range;
};


/* "setools/policyrep/user.pxi":83
 * # Iterator Classes
 * #
 * cdef class UserHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over users in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_UserHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/user.pxi":101
 * 
 * 
 * cdef class UserEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a user ebitmap."""
*/
struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_UserEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/xencontext.pxi":66
 * # Classes
 * #
 * cdef class Devicetreecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A devicetreecon statement."""
*/
struct __pyx_obj_7setools_9policyrep_Devicetreecon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *path;
};


/* "setools/policyrep/xencontext.pxi":86
 * 
 * 
 * cdef class Iomemcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A iomemcon statement."""
*/
struct __pyx_obj_7setools_9policyrep_Iomemcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *addr;
};


/* "setools/policyrep/xencontext.pxi":106
 * 
 * 
 * cdef class Ioportcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A ioportcon statement."""
*/
struct __pyx_obj_7setools_9policyrep_Ioportcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *ports;
};


/* "setools/policyrep/xencontext.pxi":126
 * 
 * 
 * cdef class Pcidevicecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A pcidevicecon statement."""
*/
struct __pyx_obj_7setools_9policyrep_Pcidevicecon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *device;
};


/* "setools/policyrep/xencontext.pxi":146
 * 
 * 
 * cdef class Pirqcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A pirqcon statement."""
*/
struct __pyx_obj_7setools_9policyrep_Pirqcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *irq;
};


/* "setools/policyrep/xencontext.pxi":169
 * # Iterators
 * #
 * cdef class DevicetreeconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for devicetreecon statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_DevicetreeconIterator *__pyx_vtab;
};


/* "setools/policyrep/xencontext.pxi":186
 * 
 * 
 * cdef class IomemconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for iomemcon statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_IomemconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_IomemconIterator *__pyx_vtab;
};


/* "setools/policyrep/xencontext.pxi":203
 * 
 * 
 * cdef class IoportconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ioportcon statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_IoportconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_IoportconIterator *__pyx_vtab;
};


/* "setools/policyrep/xencontext.pxi":220
 * 
 * 
 * cdef class PcideviceconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for pcidevicecon statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_PcideviceconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_PcideviceconIterator *__pyx_vtab;
};


/* "setools/policyrep/xencontext.pxi":237
 * 
 * 
 * cdef class PirqconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for pirqcon statements in the policy."""
*/
struct __pyx_obj_7setools_9policyrep_PirqconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_PirqconIterator *__pyx_vtab;
};


/* "setools/policyrep/mls.pxi":173
 *             # generate short category notation
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,             # <<<<<<<<<<<<<<
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
*/
struct __pyx_defaults {
  PyObject_HEAD
  PyObject *arg0;
};


/* "setools/policyrep/boolcond.pxi":205
 *          ({"a": False, "b": False}, False)]
 *         """
 *         bools = sorted(str(b) for b in self.booleans)             # <<<<<<<<<<<<<<
 * 
 *         truth_table = []
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_b;
};


/* "setools/policyrep/constraint.pxi":153
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:
 *                     ret.append(f"{{ {' '.join(str(j) for j in item)} }} ")             # <<<<<<<<<<<<<<
 *                 else:
 *                     ret.append(f"{' '.join(str(j) for j in item)}")
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_j;
};


/* "setools/policyrep/constraint.pxi":155
 *                     ret.append(f"{{ {' '.join(str(j) for j in item)} }} ")
 *                 else:
 *                     ret.append(f"{' '.join(str(j) for j in item)}")             # <<<<<<<<<<<<<<
 *             else:
 *                 ret.append(item)
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_j;
};


/* "setools/policyrep/constraint.pxi":344
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_r;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/constraint.pxi":349
 *                     n.types = True
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in             # <<<<<<<<<<<<<<
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
 *                                                  policy, symbol.type_names))
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/constraint.pxi":353
 *                                                  policy, symbol.type_names))
 *                     else:
 *                         n._names = frozenset(t for t in TypeEbitmapIterator.factory(             # <<<<<<<<<<<<<<
 *                                              policy, &symbol.names))
 *                 else:
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/constraint.pxi":357
 *                 else:
 *                     n.users = True
 *                     n._names = frozenset(u for u in UserEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 * 
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_u;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/mls.pxi":337
 *             raise InvalidLevel(
 *                 f"{name} is not a valid level "
 *                 f"(category {', '.join(str(c) for c in invalid_cats)} is not associated "             # <<<<<<<<<<<<<<
 *                 f"with sensitivity {l.sensitivity})")
 * 
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_c;
};


/* "setools/policyrep/mlsrule.pxi":49
 *         return self.rng
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef MLSRule r
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/object.pxi":82
 *         return self.name
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the symbol into constitent symbols."""
 *         # Default is non-expandable.
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self;
};


/* "setools/policyrep/rbacrule.pxi":46
 *         return str(self) < str(other)
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleAllow r
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/rbacrule.pxi":104
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleTransition r
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/role.pxi":37
 *     def statement(self):
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)             # <<<<<<<<<<<<<<
 *         count = len(types)
 *         stmt = f"role {self.name}"
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_t;
};


/* "setools/policyrep/selinuxpolicy.pxi":123
 *     def category_count(self):
 *         """The number of categories."""
 *         return sum(1 for _ in self.categories())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v__;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":149
 *     def default_count(self):
 *         """The number of default_* rules."""
 *         return sum(1 for d in self.defaults())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_d;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":206
 *     def level_count(self):
 *         """The number of levels."""
 *         return sum(1 for _ in self.levels())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v__;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":240
 *     def nodecon_count(self):
 *         """The number of nodecon statements."""
 *         return sum(1 for n in self.nodecons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_n;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":250
 *     def permission_count(self):
 *         """The number of permissions."""
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_c;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":255
 *     def permissives_count(self):
 *         """The number of permissive types."""
 *         return sum(1 for t in self.types() if t.ispermissive)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":284
 *     @property
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()             # <<<<<<<<<<<<<<
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_r;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":457
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults {
  PyObject_HEAD
  PyObject *__pyx_v_cls;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":506
 *                                RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
 *     def terules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all type enforcement rules."""
 *         yield from TERuleIterator.factory(self, &self.handle.p.te_avtab)
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules {
  PyObject_HEAD
  PyObject *__pyx_v_c;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":518
 *     # Constraints iterators
 *     #
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints {
  PyObject_HEAD
  PyObject *__pyx_v_c;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":1057
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())             # <<<<<<<<<<<<<<
 * 
 *     cdef _cache_terule_counts(self):
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_r;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":132
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,             # <<<<<<<<<<<<<<
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_p;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":182
 *         r.target = target
 *         r.tclass = self.tclass
 *         r.perms = frozenset(p for p in perms)             # <<<<<<<<<<<<<<
 *         r._conditional = self._conditional
 *         r._conditional_block = self._conditional_block
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_p;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":188
 *         return r
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRule r
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":280
 *         string output.
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(             # <<<<<<<<<<<<<<
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))
 * 
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v__a;
  PyObject *__pyx_v__b;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":379
 *         raise RuleUseError(f"{self.ruletype} rules do not have a default type.")
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRuleXperm r
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":455
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef TERule r
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":531
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef FileNameTERule r
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":770
 * 
 *     def __len__(self):
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_r;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/typeattr.pxi":87
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this into its member types."""
 *         yield self
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self;
};


/* "setools/policyrep/typeattr.pxi":114
 *             stmt += f" alias {self._aliases[0]}"
 *         if self._attrs:
 *             stmt += f", {', '.join(a.name for a in sorted(self._attrs))}"             # <<<<<<<<<<<<<<
 *         stmt += ";"
 *         return stmt
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_a;
};


/* "setools/policyrep/user.pxi":36
 *             # and analysts don't expect to see it in results, and it
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)             # <<<<<<<<<<<<<<
 *                        if r != "object_r")
 * 
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_r;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/user.pxi":63
 *     def statement(self):
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)             # <<<<<<<<<<<<<<
 *             str stmt = f"user {self.name} roles "
 *             size_t count = len(roles)
*/
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_r;
};



/* "setools/policyrep/fscontext.pxi":158
 *         return FSUse.factory(self.policy, self.ocon)
 * 
 * cdef class GenfsconIterator:             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for genfscon statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_GenfsconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, genfs_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_GenfsconIterator *__pyx_vtabptr_7setools_9policyrep_GenfsconIterator;


/* "setools/policyrep/object.pxi":10
 * # Classes
 * #
 * cdef class PolicyObject:             # <<<<<<<<<<<<<<
 * 
 *     """This is a base class for all policy objects."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject {
  int (*_eq)(struct __pyx_obj_7setools_9policyrep_PolicyObject *, struct __pyx_obj_7setools_9policyrep_PolicyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
static CYTHON_INLINE int __pyx_f_7setools_9policyrep_12PolicyObject__eq(struct __pyx_obj_7setools_9policyrep_PolicyObject *, struct __pyx_obj_7setools_9policyrep_PolicyObject *);


/* "setools/policyrep/mls.pxi":381
 * 
 * 
 * cdef class Range(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS range"""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Range {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Range *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_range_t *);
  struct __pyx_obj_7setools_9policyrep_Range *(*factory_from_string)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Range *__pyx_vtabptr_7setools_9policyrep_Range;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_range_t *);
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);


/* "setools/policyrep/mls.pxi":156
 * 
 * 
 * cdef class BaseMLSLevel(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for MLS levels."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_BaseMLSLevel {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseMLSLevel *__pyx_vtabptr_7setools_9policyrep_BaseMLSLevel;


/* "setools/policyrep/mls.pxi":257
 * 
 * 
 * cdef class Level(BaseMLSLevel):             # <<<<<<<<<<<<<<
 * 
 *     """
*/

struct __pyx_vtabstruct_7setools_9policyrep_Level {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseMLSLevel __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Level *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_level_t *);
  struct __pyx_obj_7setools_9policyrep_Level *(*factory_from_string)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Level *__pyx_vtabptr_7setools_9policyrep_Level;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_level_t *);
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);


/* "setools/policyrep/mls.pxi":194
 * 
 * 
 * cdef class LevelDecl(BaseMLSLevel):             # <<<<<<<<<<<<<<
 * 
 *     """
*/

struct __pyx_vtabstruct_7setools_9policyrep_LevelDecl {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseMLSLevel __pyx_base;
  struct __pyx_obj_7setools_9policyrep_LevelDecl *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_LevelDecl *__pyx_vtabptr_7setools_9policyrep_LevelDecl;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_f_7setools_9policyrep_9LevelDecl_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *);


/* "setools/policyrep/default.pxi":75
 * # Classes
 * #
 * cdef class Default(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for default_* statements."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Default {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Default *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, PyObject *, PyObject *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Default *__pyx_vtabptr_7setools_9policyrep_Default;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Default *__pyx_f_7setools_9policyrep_7Default_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, PyObject *, PyObject *, PyObject *, PyObject *);


/* "setools/policyrep/default.pxi":149
 * 
 * 
 * cdef class DefaultRange(Default):             # <<<<<<<<<<<<<<
 * 
 *     """A default_range statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_DefaultRange {
  struct __pyx_vtabstruct_7setools_9policyrep_Default __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_DefaultRange *__pyx_vtabptr_7setools_9policyrep_DefaultRange;


/* "setools/policyrep/context.pxi":7
 * #
 * 
 * cdef class Context(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A SELinux security context/security attribute."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Context {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Context *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, context_struct_t *);
  struct __pyx_obj_7setools_9policyrep_Context *(*factory_from_string)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Context *__pyx_vtabptr_7setools_9policyrep_Context;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Context *__pyx_f_7setools_9policyrep_7Context_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, context_struct_t *);
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Context *__pyx_f_7setools_9policyrep_7Context_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);


/* "setools/policyrep/constraint.pxi":249
 * 
 * 
 * cdef class ConstraintExprNode(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """
*/

struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprNode {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprNode *__pyx_vtabptr_7setools_9policyrep_ConstraintExprNode;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_f_7setools_9policyrep_18ConstraintExprNode_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *);


/* "setools/policyrep/constraint.pxi":94
 * 
 * 
 * cdef class ConstraintExpression(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """
*/

struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExpression {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExpression *__pyx_vtabptr_7setools_9policyrep_ConstraintExpression;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_f_7setools_9policyrep_20ConstraintExpression_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *);


/* "setools/policyrep/constraint.pxi":27
 * 
 * 
 * cdef class BaseConstraint(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for constraint rules."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_BaseConstraint {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseConstraint *__pyx_vtabptr_7setools_9policyrep_BaseConstraint;


/* "setools/policyrep/constraint.pxi":70
 * 
 * 
 * cdef class Validatetrans(BaseConstraint):             # <<<<<<<<<<<<<<
 * 
 *     """A validatetrans rule (validatetrans/mlsvalidatetrans)."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Validatetrans {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseConstraint __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Validatetrans *__pyx_vtabptr_7setools_9policyrep_Validatetrans;


/* "setools/policyrep/constraint.pxi":41
 * 
 * 
 * cdef class Constraint(BaseConstraint):             # <<<<<<<<<<<<<<
 * 
 *     """A constraint rule (constrain/mlsconstrain)."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Constraint {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseConstraint __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Constraint *__pyx_vtabptr_7setools_9policyrep_Constraint;


/* "setools/policyrep/bounds.pxi":18
 * 
 * 
 * cdef class Bounds(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A bounds statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Bounds {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Bounds *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Bounds *__pyx_vtabptr_7setools_9policyrep_Bounds;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_f_7setools_9policyrep_6Bounds_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *, PyObject *);


/* "setools/policyrep/boolcond.pxi":219
 * 
 * 
 * cdef class ConditionalOperator(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A conditional expression operator"""
*/

struct __pyx_vtabstruct_7setools_9policyrep_ConditionalOperator {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_expr_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalOperator *__pyx_vtabptr_7setools_9policyrep_ConditionalOperator;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_f_7setools_9policyrep_19ConditionalOperator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_expr_t *);


/* "setools/policyrep/boolcond.pxi":43
 * 
 * 
 * cdef class Conditional(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A conditional policy block."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Conditional {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Conditional *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_node_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Conditional *__pyx_vtabptr_7setools_9policyrep_Conditional;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_f_7setools_9policyrep_11Conditional_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_node_t *);


/* "setools/policyrep/object.pxi":69
 * 
 * 
 * cdef class PolicySymbol(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for policy symbols (declared objects: types, users, etc.)"""
*/

struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;


/* "setools/policyrep/objclass.pxi":68
 * 
 * 
 * cdef class ObjClass(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An object class."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_ObjClass {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ObjClass *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, class_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ObjClass *__pyx_vtabptr_7setools_9policyrep_ObjClass;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_f_7setools_9policyrep_8ObjClass_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, class_datum_t *);


/* "setools/policyrep/objclass.pxi":14
 * # Classes
 * #
 * cdef class Common(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A common permission set."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Common {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Common *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, common_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Common *__pyx_vtabptr_7setools_9policyrep_Common;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Common *__pyx_f_7setools_9policyrep_6Common_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, common_datum_t *);


/* "setools/policyrep/mls.pxi":85
 * 
 * 
 * cdef class Sensitivity(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS sensitivity"""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Sensitivity {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Sensitivity *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Sensitivity *__pyx_vtabptr_7setools_9policyrep_Sensitivity;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_f_7setools_9policyrep_11Sensitivity_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *);


/* "setools/policyrep/mls.pxi":31
 * 
 * 
 * cdef class Category(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS category."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Category {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Category *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cat_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Category *__pyx_vtabptr_7setools_9policyrep_Category;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Category *__pyx_f_7setools_9policyrep_8Category_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cat_datum_t *);


/* "setools/policyrep/boolcond.pxi":22
 * # Classes
 * #
 * cdef class Boolean(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A Boolean."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Boolean {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Boolean *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_bool_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Boolean *__pyx_vtabptr_7setools_9policyrep_Boolean;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_f_7setools_9policyrep_7Boolean_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_bool_datum_t *);


/* "setools/policyrep/object.pxi":88
 * 
 * 
 * cdef class Ocontext(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for most in-policy labeling statements, (portcon, nodecon, etc.)"""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Ocontext {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ocontext *__pyx_vtabptr_7setools_9policyrep_Ocontext;


/* "setools/policyrep/netcontext.pxi":297
 * 
 * 
 * cdef class Portcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A portcon statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Portcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Portcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Portcon *__pyx_vtabptr_7setools_9policyrep_Portcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_f_7setools_9policyrep_7Portcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/netcontext.pxi":192
 * 
 * 
 * cdef class Nodecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A nodecon statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Nodecon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Nodecon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Nodecon *__pyx_vtabptr_7setools_9policyrep_Nodecon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_f_7setools_9policyrep_7Nodecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);


/* "setools/policyrep/netcontext.pxi":154
 * 
 * 
 * cdef class Netifcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A netifcon statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Netifcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Netifcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Netifcon *__pyx_vtabptr_7setools_9policyrep_Netifcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_f_7setools_9policyrep_8Netifcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/netcontext.pxi":96
 * 
 * 
 * cdef class Ibpkeycon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An ibpkeycon statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Ibpkeycon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ibpkeycon *__pyx_vtabptr_7setools_9policyrep_Ibpkeycon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_f_7setools_9policyrep_9Ibpkeycon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/netcontext.pxi":66
 * # Classes
 * #
 * cdef class Ibendportcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An ibendportcon statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Ibendportcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Ibendportcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ibendportcon *__pyx_vtabptr_7setools_9policyrep_Ibendportcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_f_7setools_9policyrep_12Ibendportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/initsid.pxi":24
 * # Classes
 * #
 * cdef class InitialSID(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An initial SID statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_InitialSID {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_InitialSID *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct ocontext *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_InitialSID *__pyx_vtabptr_7setools_9policyrep_InitialSID;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_f_7setools_9policyrep_10InitialSID_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct ocontext *);


/* "setools/policyrep/fscontext.pxi":91
 * 
 * 
 * cdef class Genfscon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A genfscon statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Genfscon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Genfscon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Genfscon *__pyx_vtabptr_7setools_9policyrep_Genfscon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_f_7setools_9policyrep_8Genfscon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);


/* "setools/policyrep/fscontext.pxi":21
 * 
 * 
 * cdef class FSUse(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An fs_use_* statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_FSUse {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_FSUse *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_FSUse *__pyx_vtabptr_7setools_9policyrep_FSUse;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_f_7setools_9policyrep_5FSUse_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/objclass.pxi":247
 * 
 * 
 * cdef class PermissionVectorIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over an access (permission) vector"""
*/

struct __pyx_vtabstruct_7setools_9policyrep_PermissionVectorIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, uint32_t);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PermissionVectorIterator *__pyx_vtabptr_7setools_9policyrep_PermissionVectorIterator;


/* "setools/policyrep/constraint.pxi":488
 * 
 * 
 * cdef class ConstraintExprIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
*/

struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprIterator *__pyx_vtabptr_7setools_9policyrep_ConstraintExprIterator;


/* "setools/policyrep/constraint.pxi":421
 * # Iterators
 * #
 * cdef class ConstraintIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Constraint iterator."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator *__pyx_vtabptr_7setools_9policyrep_ConstraintIterator;


/* "setools/policyrep/constraint.pxi":465
 * 
 * 
 * cdef class ValidatetransIterator(ConstraintIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Validatetrans iterator."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_ValidatetransIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_ValidatetransIterator *__pyx_vtabptr_7setools_9policyrep_ValidatetransIterator;


/* "setools/policyrep/boolcond.pxi":321
 * 
 * 
 * cdef class ConditionalExprIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditional expression iterator."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_ConditionalExprIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_expr_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalExprIterator *__pyx_vtabptr_7setools_9policyrep_ConditionalExprIterator;


/* "setools/policyrep/boolcond.pxi":279
 * 
 * 
 * cdef class ConditionalIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditionals iterator."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_ConditionalIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_node_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalIterator *__pyx_vtabptr_7setools_9policyrep_ConditionalIterator;


/* "setools/policyrep/mls.pxi":664
 * # Ebitmap Iterators
 * #
 * cdef class CategoryEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a category ebitmap."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_CategoryEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_CategoryEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_CategoryEbitmapIterator;


/* "setools/policyrep/object.pxi":175
 * 
 * 
 * cdef class HashtabIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
*/

struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator {
  void (*_next_bucket)(struct __pyx_obj_7setools_9policyrep_HashtabIterator *);
  void (*_next_node)(struct __pyx_obj_7setools_9policyrep_HashtabIterator *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;


/* "setools/policyrep/objclass.pxi":229
 * 
 * 
 * cdef class ObjClassHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over roles in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_ObjClassHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ObjClassHashtabIterator *__pyx_vtabptr_7setools_9policyrep_ObjClassHashtabIterator;


/* "setools/policyrep/objclass.pxi":211
 * # Iterators
 * #
 * cdef class CommonHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over commons in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_CommonHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_CommonHashtabIterator *__pyx_vtabptr_7setools_9policyrep_CommonHashtabIterator;


/* "setools/policyrep/mlsrule.pxi":76
 * # Iterators
 * #
 * cdef class MLSRuleIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over MLS rules in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_MLSRuleIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_MLSRuleIterator *__pyx_vtabptr_7setools_9policyrep_MLSRuleIterator;


/* "setools/policyrep/mls.pxi":604
 * 
 * 
 * cdef class LevelDeclHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over level declarations in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_LevelDeclHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_vtabptr_7setools_9policyrep_LevelDeclHashtabIterator;


/* "setools/policyrep/mls.pxi":547
 * 
 * 
 * cdef class SensitivityHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over sensitivity in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_SensitivityHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_SensitivityHashtabIterator *__pyx_vtabptr_7setools_9policyrep_SensitivityHashtabIterator;


/* "setools/policyrep/mls.pxi":490
 * # Hash Table Iterators
 * #
 * cdef class CategoryHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over categories in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_CategoryHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_CategoryHashtabIterator *__pyx_vtabptr_7setools_9policyrep_CategoryHashtabIterator;


/* "setools/policyrep/bounds.pxi":57
 * # Iterators
 * #
 * cdef class TypeboundsIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over typebounds rules in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_TypeboundsIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeboundsIterator *__pyx_vtabptr_7setools_9policyrep_TypeboundsIterator;


/* "setools/policyrep/boolcond.pxi":261
 * # Iterators
 * #
 * cdef class BooleanHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over Booleans in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_BooleanHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_BooleanHashtabIterator *__pyx_vtabptr_7setools_9policyrep_BooleanHashtabIterator;


/* "setools/policyrep/netcontext.pxi":401
 * 
 * 
 * cdef class PortconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for portcon statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_PortconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PortconIterator *__pyx_vtabptr_7setools_9policyrep_PortconIterator;


/* "setools/policyrep/netcontext.pxi":381
 * 
 * 
 * cdef class NodeconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for nodecon statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_NodeconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_NodeconIterator *__pyx_vtabptr_7setools_9policyrep_NodeconIterator;


/* "setools/policyrep/netcontext.pxi":364
 * 
 * 
 * cdef class NetifconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for netifcon statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_NetifconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_NetifconIterator *__pyx_vtabptr_7setools_9policyrep_NetifconIterator;


/* "setools/policyrep/netcontext.pxi":347
 * 
 * 
 * cdef class IbpkeyconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ibpkeycon statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_IbpkeyconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_IbpkeyconIterator *__pyx_vtabptr_7setools_9policyrep_IbpkeyconIterator;


/* "setools/policyrep/netcontext.pxi":330
 * # Iterators
 * #
 * cdef class IbendportconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ibendportcon statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_IbendportconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_IbendportconIterator *__pyx_vtabptr_7setools_9policyrep_IbendportconIterator;


/* "setools/policyrep/initsid.pxi":56
 * 
 * 
 * cdef class InitialSIDIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for initial SID statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_InitialSIDIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_InitialSIDIterator *__pyx_vtabptr_7setools_9policyrep_InitialSIDIterator;


/* "setools/policyrep/fscontext.pxi":210
 * 
 * 
 * cdef class GenfsconOcontextIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Sub-iterator for genfscon statements."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_GenfsconOcontextIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_GenfsconOcontextIterator *__pyx_vtabptr_7setools_9policyrep_GenfsconOcontextIterator;


/* "setools/policyrep/fscontext.pxi":142
 * # Iterators
 * #
 * cdef class FSUseIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for fs_use_* statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_FSUseIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_FSUseIterator *__pyx_vtabptr_7setools_9policyrep_FSUseIterator;


/* "setools/policyrep/polcap.pxi":8
 * 
 * 
 * cdef class PolicyCapability(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A policy capability."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapability {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_PolicyCapability *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapability *__pyx_vtabptr_7setools_9policyrep_PolicyCapability;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_f_7setools_9policyrep_16PolicyCapability_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);


/* "setools/policyrep/polcap.pxi":34
 * 
 * 
 * cdef class PolicyCapabilityIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for policy capability statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapabilityIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapabilityIterator *__pyx_vtabptr_7setools_9policyrep_PolicyCapabilityIterator;


/* "setools/policyrep/rbacrule.pxi":131
 * # Iterators
 * #
 * cdef class RoleAllowIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Role allow rule iterator."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_RoleAllowIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_allow_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleAllowIterator *__pyx_vtabptr_7setools_9policyrep_RoleAllowIterator;


/* "setools/policyrep/rbacrule.pxi":173
 * 
 * 
 * cdef class RoleTransitionIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Role transition rule iterator."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_RoleTransitionIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_trans_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleTransitionIterator *__pyx_vtabptr_7setools_9policyrep_RoleTransitionIterator;


/* "setools/policyrep/role.pxi":8
 * 
 * 
 * cdef class Role(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A role."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Role {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Role *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Role *__pyx_vtabptr_7setools_9policyrep_Role;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Role *__pyx_f_7setools_9policyrep_4Role_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_datum_t *);


/* "setools/policyrep/role.pxi":51
 * # Iterator Classes
 * #
 * cdef class RoleHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over roles in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_RoleHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleHashtabIterator *__pyx_vtabptr_7setools_9policyrep_RoleHashtabIterator;


/* "setools/policyrep/role.pxi":69
 * 
 * 
 * cdef class RoleEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a role ebitmap."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_RoleEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_RoleEbitmapIterator;


/* "setools/policyrep/rule.pxi":7
 * #
 * 
 * cdef class PolicyRule(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """This is base class for policy rules."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule *__pyx_vtabptr_7setools_9policyrep_PolicyRule;


/* "setools/policyrep/rbacrule.pxi":69
 * 
 * 
 * cdef class RoleTransition(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """A role_transition rule."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_RoleTransition {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_RoleTransition *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_trans_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleTransition *__pyx_vtabptr_7setools_9policyrep_RoleTransition;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_f_7setools_9policyrep_14RoleTransition_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_trans_t *);


/* "setools/policyrep/rbacrule.pxi":24
 * 
 * 
 * cdef class RoleAllow(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """A role allow rule."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_RoleAllow {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_RoleAllow *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_allow_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleAllow *__pyx_vtabptr_7setools_9policyrep_RoleAllow;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_f_7setools_9policyrep_9RoleAllow_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_allow_t *);


/* "setools/policyrep/mlsrule.pxi":15
 * 
 * 
 * cdef class MLSRule(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS rule."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_MLSRule {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_MLSRule *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, range_trans_t *, mls_range_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_MLSRule *__pyx_vtabptr_7setools_9policyrep_MLSRule;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_f_7setools_9policyrep_7MLSRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, range_trans_t *, mls_range_t *);


/* "setools/policyrep/selinuxpolicy.pxi":26
 * 
 * 
 * cdef class SELinuxPolicy:             # <<<<<<<<<<<<<<
 *     cdef:
 *         sepol.sepol_policydb *handle
*/

struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy {
  cond_bool_datum_t *(*boolean_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*boolean_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  cat_datum_t *(*category_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*category_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  class_datum_t *(*class_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*class_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*common_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  level_datum_t *(*level_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*level_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  role_datum_t *(*role_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*role_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  type_datum_t *(*type_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*type_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  user_datum_t *(*user_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*user_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*_load_policy)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);
  PyObject *(*_load_running_policy)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_set_permissive_flags)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_create_mls_val_to_struct)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_load_category_aliases)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_load_sensitivity_aliases)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_load_type_aliases)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_rebuild_attrs_from_map)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_synthesize_attrs)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_cache_constraint_counts)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_cache_terule_counts)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *__pyx_vtabptr_7setools_9policyrep_SELinuxPolicy;
static CYTHON_INLINE cond_bool_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE cat_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE class_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_common_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE level_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE role_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE type_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE user_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);


/* "setools/policyrep/terule.pxi":34
 * 
 * 
 * cdef class BaseTERule(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for TE rules."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule *__pyx_vtabptr_7setools_9policyrep_BaseTERule;


/* "setools/policyrep/terule.pxi":115
 * 
 * 
 * cdef class AVRule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """An access vector type enforcement rule."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_AVRule {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_AVRule *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_AVRule *__pyx_vtabptr_7setools_9policyrep_AVRule;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_f_7setools_9policyrep_6AVRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);


/* "setools/policyrep/terule.pxi":292
 * 
 * 
 * cdef class AVRuleXperm(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """An extended permission access vector type enforcement rule."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_AVRuleXperm {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_AVRuleXperm *__pyx_vtabptr_7setools_9policyrep_AVRuleXperm;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_f_7setools_9policyrep_11AVRuleXperm_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);


/* "setools/policyrep/terule.pxi":416
 * 
 * 
 * cdef class TERule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """A type_* type enforcement rule."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_TERule {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_TERule *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TERule *__pyx_vtabptr_7setools_9policyrep_TERule;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TERule *__pyx_f_7setools_9policyrep_6TERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);


/* "setools/policyrep/terule.pxi":489
 * 
 * 
 * cdef class FileNameTERule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """A type_transition type enforcement rule with filename."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERule {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, filename_trans_key_t *, struct __pyx_obj_7setools_9policyrep_Type *, size_t);
};
static struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERule *__pyx_vtabptr_7setools_9policyrep_FileNameTERule;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_f_7setools_9policyrep_14FileNameTERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, filename_trans_key_t *, struct __pyx_obj_7setools_9policyrep_Type *, size_t);


/* "setools/policyrep/terule.pxi":562
 * # Iterators
 * #
 * cdef class TERuleIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for access vector tables."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct avtab *);
  void (*_next_bucket)(struct __pyx_obj_7setools_9policyrep_TERuleIterator *);
  void (*_next_node)(struct __pyx_obj_7setools_9policyrep_TERuleIterator *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *__pyx_vtabptr_7setools_9policyrep_TERuleIterator;


/* "setools/policyrep/terule.pxi":659
 * 
 * 
 * cdef class ConditionalTERuleIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditional TE rule iterator."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_ConditionalTERuleIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_av_list_t *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalTERuleIterator *__pyx_vtabptr_7setools_9policyrep_ConditionalTERuleIterator;


/* "setools/policyrep/terule.pxi":732
 * 
 * 
 * cdef class FileNameTERuleIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over FileNameTERules in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERuleIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERuleIterator *__pyx_vtabptr_7setools_9policyrep_FileNameTERuleIterator;


/* "setools/policyrep/typeattr.pxi":32
 * # Classes
 * #
 * cdef class BaseType(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """Type/attribute base class."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_BaseType {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseType *__pyx_vtabptr_7setools_9policyrep_BaseType;


/* "setools/policyrep/typeattr.pxi":49
 * 
 * 
 * cdef class Type(BaseType):             # <<<<<<<<<<<<<<
 * 
 *     """A type."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Type {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseType __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Type *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *);
  void (*_load_attributes)(struct __pyx_obj_7setools_9policyrep_Type *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Type *__pyx_vtabptr_7setools_9policyrep_Type;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Type *__pyx_f_7setools_9policyrep_4Type_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *);
static CYTHON_INLINE void __pyx_f_7setools_9policyrep_4Type__load_attributes(struct __pyx_obj_7setools_9policyrep_Type *);


/* "setools/policyrep/typeattr.pxi":119
 * 
 * 
 * cdef class TypeAttribute(BaseType):             # <<<<<<<<<<<<<<
 * 
 *     """A type attribute."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseType __pyx_base;
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *);
  PyObject *(*load_types)(struct __pyx_obj_7setools_9policyrep_TypeAttribute *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute *__pyx_vtabptr_7setools_9policyrep_TypeAttribute;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_f_7setools_9policyrep_13TypeAttribute_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *);


/* "setools/policyrep/typeattr.pxi":191
 * 
 * 
 * cdef class TypeHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over types in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_TypeHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeHashtabIterator *__pyx_vtabptr_7setools_9policyrep_TypeHashtabIterator;


/* "setools/policyrep/typeattr.pxi":242
 * 
 * 
 * cdef class TypeAttributeHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over type attributes in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_vtabptr_7setools_9policyrep_TypeAttributeHashtabIterator;


/* "setools/policyrep/typeattr.pxi":292
 * # Ebitmap Iterator Classes
 * #
 * cdef class TypeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type ebitmap."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_TypeEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
  PyObject *(*factory_from_set)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_TypeEbitmapIterator;


/* "setools/policyrep/typeattr.pxi":320
 * 
 * 
 * cdef class TypeAttributeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type attribute ebitmap."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
  PyObject *(*factory_from_set)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_TypeAttributeEbitmapIterator;


/* "setools/policyrep/typeattr.pxi":349
 * 
 * 
 * cdef class TypeOrAttributeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type or type attribute ebitmap."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_TypeOrAttributeEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
  PyObject *(*factory_from_set)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_TypeOrAttributeEbitmapIterator;


/* "setools/policyrep/user.pxi":10
 * 
 * 
 * cdef class User(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A user."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_User {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_User *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, user_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_User *__pyx_vtabptr_7setools_9policyrep_User;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_User *__pyx_f_7setools_9policyrep_4User_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, user_datum_t *);


/* "setools/policyrep/user.pxi":83
 * # Iterator Classes
 * #
 * cdef class UserHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over users in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_UserHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_UserHashtabIterator *__pyx_vtabptr_7setools_9policyrep_UserHashtabIterator;


/* "setools/policyrep/user.pxi":101
 * 
 * 
 * cdef class UserEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a user ebitmap."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_UserEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_UserEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_UserEbitmapIterator;


/* "setools/policyrep/xencontext.pxi":66
 * # Classes
 * #
 * cdef class Devicetreecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A devicetreecon statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Devicetreecon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Devicetreecon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Devicetreecon *__pyx_vtabptr_7setools_9policyrep_Devicetreecon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_f_7setools_9policyrep_13Devicetreecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/xencontext.pxi":86
 * 
 * 
 * cdef class Iomemcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A iomemcon statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Iomemcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Iomemcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Iomemcon *__pyx_vtabptr_7setools_9policyrep_Iomemcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_f_7setools_9policyrep_8Iomemcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/xencontext.pxi":106
 * 
 * 
 * cdef class Ioportcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A ioportcon statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Ioportcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Ioportcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ioportcon *__pyx_vtabptr_7setools_9policyrep_Ioportcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_f_7setools_9policyrep_9Ioportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/xencontext.pxi":126
 * 
 * 
 * cdef class Pcidevicecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A pcidevicecon statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Pcidevicecon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Pcidevicecon *__pyx_vtabptr_7setools_9policyrep_Pcidevicecon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_f_7setools_9policyrep_12Pcidevicecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/xencontext.pxi":146
 * 
 * 
 * cdef class Pirqcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A pirqcon statement."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_Pirqcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Pirqcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Pirqcon *__pyx_vtabptr_7setools_9policyrep_Pirqcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_f_7setools_9policyrep_7Pirqcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/xencontext.pxi":169
 * # Iterators
 * #
 * cdef class DevicetreeconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for devicetreecon statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_DevicetreeconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_DevicetreeconIterator *__pyx_vtabptr_7setools_9policyrep_DevicetreeconIterator;


/* "setools/policyrep/xencontext.pxi":186
 * 
 * 
 * cdef class IomemconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for iomemcon statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_IomemconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_IomemconIterator *__pyx_vtabptr_7setools_9policyrep_IomemconIterator;


/* "setools/policyrep/xencontext.pxi":203
 * 
 * 
 * cdef class IoportconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ioportcon statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_IoportconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_IoportconIterator *__pyx_vtabptr_7setools_9policyrep_IoportconIterator;


/* "setools/policyrep/xencontext.pxi":220
 * 
 * 
 * cdef class PcideviceconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for pcidevicecon statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_PcideviceconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PcideviceconIterator *__pyx_vtabptr_7setools_9policyrep_PcideviceconIterator;


/* "setools/policyrep/xencontext.pxi":237
 * 
 * 
 * cdef class PirqconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for pirqcon statements in the policy."""
*/

struct __pyx_vtabstruct_7setools_9policyrep_PirqconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PirqconIterator *__pyx_vtabptr_7setools_9policyrep_PirqconIterator;
/* #### Code section: utility_code_proto ### */

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, Py_ssize_t);
    void (*DECREF)(void*, PyObject*, Py_ssize_t);
    void (*GOTREF)(void*, PyObject*, Py_ssize_t);
    void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
    void* (*SetupContext)(const char*, Py_ssize_t, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
          }
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_XINCREF(r)  do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContextNogil()
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_Py_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; Py_XDECREF(tmp);\
    } while (0)
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyErrExceptionMatches.proto (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* PyThreadStateGet.proto (used by PyErrFetchRestore) */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#if PY_VERSION_HEX >= 0x030C00A6
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->current_exception != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
#else
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->curexc_type != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->curexc_type)
#endif
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  (PyErr_Occurred() != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  PyErr_Occurred()
#endif

/* PyErrFetchRestore.proto (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* PyObjectGetAttrStr.proto (used by PyObjectGetAttrStrNoError) */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* PyObjectGetAttrStrNoError.proto (used by GetBuiltinName) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* TupleAndListFromArray.proto (used by fastcall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
#endif
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
#endif

/* IncludeStringH.proto (used by BytesEquals) */
#include <string.h>

/* BytesEquals.proto (used by UnicodeEquals) */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto (used by fastcall) */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* fastcall.proto */
#if CYTHON_AVOID_BORROWED_REFS
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_PySequence_ITEM(args, i)
#elif CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(args, i))
#else
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_XNewRef(PyTuple_GetItem(args, i))
#endif
#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
#define __Pyx_KwValues_VARARGS(args, nargs) NULL
#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
#if CYTHON_METH_FASTCALL
    #define __Pyx_ArgRef_FASTCALL(args, i) __Pyx_NewRef(args[i])
    #define __Pyx_NumKwargs_FASTCALL(kwds) __Pyx_PyTuple_GET_SIZE(kwds)
    #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
    static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
    CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
  #else
    #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
  #endif
#else
    #define __Pyx_ArgRef_FASTCALL __Pyx_ArgRef_VARARGS
    #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
    #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
    #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
    #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
#endif
#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
#if CYTHON_METH_FASTCALL || (CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(args + start, stop - start)
#else
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop)
#endif

/* py_dict_items.proto (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d);

/* CallCFunction.proto (used by CallUnboundCMethod0) */
#define __Pyx_CallCFunction(cfunc, self, args)\
    ((PyCFunction)(void(*)(void))(cfunc)->func)(self, args)
#define __Pyx_CallCFunctionWithKeywords(cfunc, self, args, kwargs)\
    ((PyCFunctionWithKeywords)(void(*)(void))(cfunc)->func)(self, args, kwargs)
#define __Pyx_CallCFunctionFast(cfunc, self, args, nargs)\
    ((__Pyx_PyCFunctionFast)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs)
#define __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, nargs, kwnames)\
    ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs, kwnames)

/* PyObjectCall.proto (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCallMethO.proto (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectFastCall.proto (used by PyObjectCallOneArg) */
#define __Pyx_PyObject_FastCall(func, args, nargs)  __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs);

/* PyObjectCallOneArg.proto (used by CallUnboundCMethod0) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* UnpackUnboundCMethod.proto (used by CallUnboundCMethod0) */
typedef struct {
    PyObject *type;
    PyObject **method_name;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && CYTHON_ATOMICS
    __pyx_atomic_int_type initialized;
#endif
    PyCFunction func;
    PyObject *method;
    int flag;
} __Pyx_CachedCFunction;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
static CYTHON_INLINE int __Pyx_CachedCFunction_GetAndSetInitializing(__Pyx_CachedCFunction *cfunc) {
#if !CYTHON_ATOMICS
    return 1;
#else
    __pyx_nonatomic_int_type expected = 0;
    if (__pyx_atomic_int_cmp_exchange(&cfunc->initialized, &expected, 1)) {
        return 0;
    }
    return expected;
#endif
}
static CYTHON_INLINE void __Pyx_CachedCFunction_SetFinishedInitializing(__Pyx_CachedCFunction *cfunc) {
#if CYTHON_ATOMICS
    __pyx_atomic_store(&cfunc->initialized, 2);
#endif
}
#else
#define __Pyx_CachedCFunction_GetAndSetInitializing(cfunc) 2
#define __Pyx_CachedCFunction_SetFinishedInitializing(cfunc)
#endif

/* CallUnboundCMethod0.proto */
CYTHON_UNUSED
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#else
#define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
#endif

/* py_dict_values.proto (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);

/* OwnedDictNext.proto (used by ParseKeywordsImpl) */
#if CYTHON_AVOID_BORROWED_REFS
static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue);
#else
CYTHON_INLINE
static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue);
#endif

/* RaiseDoubleKeywords.proto (used by ParseKeywordsImpl) */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywordsImpl.export */
static int __Pyx_ParseKeywordsTuple(
    PyObject *kwds,
    PyObject * const *kwvalues,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs
);
static int __Pyx_ParseKeywordDictToDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name
);
static int __Pyx_ParseKeywordDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs
);

/* CallUnboundCMethod2.proto */
CYTHON_UNUSED
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);
#else
#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2)  __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
#endif

/* ParseKeywords.proto */
static CYTHON_INLINE int __Pyx_ParseKeywords(
    PyObject *kwds, PyObject *const *kwvalues, PyObject ** const argnames[],
    PyObject *kwds2, PyObject *values[],
    Py_ssize_t num_pos_args, Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs
);

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* PyDictVersioning.proto (used by GetModuleGlobalName) */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __Pyx_XNewRef(__pyx_dict_cached_value);\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  do {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_mstate_global->__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  do {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* PyObjectFastCallMethod.proto */
#if CYTHON_VECTORCALL && PY_VERSION_HEX >= 0x03090000
#define __Pyx_PyObject_FastCallMethod(name, args, nargsf) PyObject_VectorcallMethod(name, args, nargsf, NULL)
#else
static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf);
#endif

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck, unsafe_shared) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck, int unsafe_shared);

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* GetTopmostException.proto (used by SaveResetException) */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* PyKeyError_Check.proto */
#define __Pyx_PyExc_KeyError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_KeyError)

/* GetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* PyObjectDelAttr.proto (used by PyObjectSetAttrStr) */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
#define __Pyx_PyObject_DelAttr(o, n) PyObject_SetAttr(o, n, NULL)
#else
#define __Pyx_PyObject_DelAttr(o, n) PyObject_DelAttr(o, n)
#endif

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   __Pyx_PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* RaiseException.export */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil);

/* PyObjectFormat.proto */
#if CYTHON_USE_UNICODE_WRITER
static PyObject* __Pyx_PyObject_Format(PyObject* s, PyObject* f);
#else
#define __Pyx_PyObject_Format(s, f) PyObject_Format(s, f)
#endif

/* ListExtend.proto */
static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00a2
    return PyList_Extend(L, v);
#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    PyObject* none = _PyList_Extend((PyListObject*)L, v);
    if (unlikely(!none))
        return -1;
    Py_DECREF(none);
    return 0;
#else
    return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
#endif
}

/* ListAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
        L->ob_item[len] = x;
        #else
        PyList_SET_ITEM(list, len, x);
        #endif
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* RaiseUnexpectedTypeError.proto */
static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj);

/* SwapException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* RejectKeywords.export */
static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds);

/* PyUnicode_Unicode.proto */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj);

/* PyObject_Unicode.proto */
#define __Pyx_PyObject_Unicode(obj)\
    (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj))

/* PyObjectCallNoArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);

/* JoinPyUnicode.export */
static PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char);

/* GetAttr3.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);

/* ExtTypeTest.proto */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);

/* SetItemInt.proto */
#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck, unsafe_shared) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
               __Pyx_SetItemInt_Generic(o, to_py_func(i), v)))
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v);
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v,
                                               int is_list, int wraparound, int boundscheck, int unsafe_shared);

/* pyfrozenset_new.proto */
static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it);

/* PySequenceContains.proto */
static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    int result = PySequence_Contains(seq, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* PyObjectGetMethod.proto (used by PyObjectCallMethod0) */
#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
#endif

/* PyObjectCallMethod0.proto (used by pop) */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);

/* pop.proto */
static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L);
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L);
#define __Pyx_PyObject_Pop(L) (likely(PyList_CheckExact(L)) ?\
    __Pyx_PyList_Pop(L) : __Pyx__PyObject_Pop(L))
#else
#define __Pyx_PyList_Pop(L)  __Pyx__PyObject_Pop(L)
#define __Pyx_PyObject_Pop(L)  __Pyx__PyObject_Pop(L)
#endif

/* PyTypeError_Check.proto */
#define __Pyx_PyExc_TypeError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_TypeError)

/* KeywordStringCheck.proto */
static CYTHON_INLINE int __Pyx_CheckKeywordStrings(const char* function_name, PyObject *kw);

/* IterFinish.proto (used by set_iter) */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* set_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
                                                  Py_ssize_t* p_orig_length, int* p_source_is_set);
static CYTHON_INLINE int __Pyx_set_iter_next(
        PyObject* iter_obj, Py_ssize_t orig_length,
        Py_ssize_t* ppos, PyObject **value,
        int source_is_set);

/* dict_getitem_default.proto */
static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value);

/* PyObjectCall2Args.proto (used by CallUnboundCMethod1) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* CallUnboundCMethod1.proto */
CYTHON_UNUSED
static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
#else
#define __Pyx_CallUnboundCMethod1(cfunc, self, arg)  __Pyx__CallUnboundCMethod1(cfunc, self, arg)
#endif

/* DictGetItem.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
#define __Pyx_PyObject_Dict_GetItem(obj, name)\
    (likely(PyDict_CheckExact(obj)) ?\
     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
#else
#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
#endif

/* RaiseUnboundLocalError.proto */
static void __Pyx_RaiseUnboundLocalError(const char *varname);

/* ListCompAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len)) {
        Py_INCREF(x);
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
        L->ob_item[len] = x;
        #else
        PyList_SET_ITEM(list, len, x);
        #endif
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif

/* pep479.proto */
static void __Pyx_Generator_Replace_StopIteration(int in_async_gen);

/* PyObjectVectorCallKwBuilder.proto */
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n);
#if CYTHON_VECTORCALL
#if PY_VERSION_HEX >= 0x03090000
#define __Pyx_Object_Vectorcall_CallFromBuilder PyObject_Vectorcall
#else
#define __Pyx_Object_Vectorcall_CallFromBuilder _PyObject_Vectorcall
#endif
#define __Pyx_MakeVectorcallBuilderKwds(n) PyTuple_New(n)
static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n);
static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n);
#else
#define __Pyx_Object_Vectorcall_CallFromBuilder __Pyx_PyObject_FastCallDict
#define __Pyx_MakeVectorcallBuilderKwds(n) __Pyx_PyDict_NewPresized(n)
#define __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n) PyDict_SetItem(builder, key, value)
#define __Pyx_VectorcallBuilder_AddArgStr(key, value, builder, args, n) PyDict_SetItemString(builder, key, value)
#endif

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* PyObjectFormatSimple.proto */
#if CYTHON_COMPILING_IN_PYPY
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#elif CYTHON_USE_TYPE_SLOTS
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        likely(PyLong_CheckExact(s)) ? PyLong_Type.tp_repr(s) :\
        likely(PyFloat_CheckExact(s)) ? PyFloat_Type.tp_repr(s) :\
        PyObject_Format(s, f))
#else
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#endif

/* PyNotImplementedError_Check.proto */
#define __Pyx_PyExc_NotImplementedError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_NotImplementedError)

/* UnicodeConcatInPlace.proto */
# if CYTHON_COMPILING_IN_CPYTHON
    #if CYTHON_REFNANNY
        #define __Pyx_PyUnicode_ConcatInPlace(left, right, unsafe_shared) __Pyx_PyUnicode_ConcatInPlaceImpl(&left, right, unsafe_shared, __pyx_refnanny)
    #else
        #define __Pyx_PyUnicode_ConcatInPlace(left, right, unsafe_shared) __Pyx_PyUnicode_ConcatInPlaceImpl(&left, right, unsafe_shared)
    #endif
    #define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_DefinitelyUniqueInPlace(left, right) __Pyx_PyUnicode_ConcatInPlace(left, right, __Pyx_ReferenceSharing_DefinitelyUnique)
    #define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(left, right) __Pyx_PyUnicode_ConcatInPlace(left, right, __Pyx_ReferenceSharing_OwnStrongReference)
    #define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_FunctionArgumentInPlace(left, right) __Pyx_PyUnicode_ConcatInPlace(left, right, __Pyx_ReferenceSharing_DefinitelyUnique)
    #define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_SharedReferenceInPlace(left, right) __Pyx_PyUnicode_ConcatInPlace(left, right, __Pyx_ReferenceSharing_SharedReference)
    static CYTHON_INLINE PyObject *__Pyx_PyUnicode_ConcatInPlaceImpl(PyObject **p_left, PyObject *right, int unsafe_shared
        #if CYTHON_REFNANNY
        , void* __pyx_refnanny
        #endif
    );
#else
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_DefinitelyUniqueInPlace __Pyx_PyUnicode_Concat
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace __Pyx_PyUnicode_Concat
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_FunctionArgumentInPlace __Pyx_PyUnicode_Concat
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_SharedReferenceInPlace __Pyx_PyUnicode_Concat
#endif
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_DefinitelyUniqueInPlaceSafe(left, right)\
    ((unlikely((left) == Py_None) || unlikely((right) == Py_None)) ?\
    PyNumber_InPlaceAdd(left, right) : __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_DefinitelyUniqueInPlace(left, right))
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlaceSafe(left, right)\
    ((unlikely((left) == Py_None) || unlikely((right) == Py_None)) ?\
    PyNumber_InPlaceAdd(left, right) : __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(left, right))
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_FunctionArgumentInPlaceSafe(left, right)\
    ((unlikely((left) == Py_None) || unlikely((right) == Py_None)) ?\
    PyNumber_InPlaceAdd(left, right) : __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_FunctionArgumentInPlace(left, right))
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_SharedReferenceInPlaceSafe(left, right)\
    ((unlikely((left) == Py_None) || unlikely((right) == Py_None)) ?\
    PyNumber_InPlaceAdd(left, right) : __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_SharedReferenceInPlace(left, right))

/* SetNameInClass.proto */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
#elif CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
#else
#define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)
#endif

/* CalculateMetaclass.proto (used by Py3ClassCreate) */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

/* PyObjectLookupSpecial.proto (used by Py3ClassCreate) */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 0)
#define __Pyx_PyObject_LookupSpecial(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 1)
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error);
#else
#define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n)
#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n)
#endif

/* Py3ClassCreate.proto */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
                                           PyObject *mkw, PyObject *modname, PyObject *doc);
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);

/* dict_setdefault.proto (used by FetchCommonType) */
static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value);

/* LimitedApiGetTypeDict.proto (used by SetItemOnTypeDict) */
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp);
#endif

/* SetItemOnTypeDict.proto (used by FixUpExtensionType) */
static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v);
#define __Pyx_SetItemOnTypeDict(tp, k, v) __Pyx__SetItemOnTypeDict((PyTypeObject*)tp, k, v)

/* FixUpExtensionType.proto (used by FetchCommonType) */
static CYTHON_INLINE int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);

/* AddModuleRef.proto (used by FetchSharedCythonModule) */
#if ((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING ) ||\
     __PYX_LIMITED_VERSION_HEX < 0x030d0000)
  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name);
#else
  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
#endif

/* FetchSharedCythonModule.proto (used by FetchCommonType) */
static PyObject *__Pyx_FetchSharedCythonABIModule(void);

/* FetchCommonType.proto (used by CommonTypesMetaclass) */
static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases);

/* CommonTypesMetaclass.proto (used by CythonFunctionShared) */
static int __pyx_CommonTypesMetaclass_init(PyObject *module);
#define __Pyx_CommonTypesMetaclass_USED

/* CallTypeTraverse.proto (used by CythonFunctionShared) */
#if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000)
#define __Pyx_call_type_traverse(o, always_call, visit, arg) 0
#else
static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg);
#endif

/* PyMethodNew.proto (used by CythonFunctionShared) */
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ);

/* PyVectorcallFastCallDict.proto (used by CythonFunctionShared) */
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
#endif

/* CythonFunctionShared.proto (used by CythonFunction) */
#define __Pyx_CyFunction_USED
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CYFUNCTION_COROUTINE     0x08
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_CyFunction_GetClassObj(f)\
      (((__pyx_CyFunctionObject *) (f))->func_classobj)
#else
  #define __Pyx_CyFunction_GetClassObj(f)\
      ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
#endif
#define __Pyx_CyFunction_SetClassObj(f, classobj)\
    __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj))
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject_HEAD
    PyObject *func;
#elif PY_VERSION_HEX < 0x030900B1
    PyCFunctionObject func;
#else
    PyCMethodObject func;
#endif
#if CYTHON_COMPILING_IN_LIMITED_API && CYTHON_METH_FASTCALL
    __pyx_vectorcallfunc func_vectorcall;
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_weakreflist;
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_dict;
#endif
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_classobj;
#endif
    PyObject *defaults;
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
    PyObject *func_is_coroutine;
} __pyx_CyFunctionObject;
#undef __Pyx_CyOrPyCFunction_Check
#define __Pyx_CyFunction_Check(obj)  __Pyx_TypeCheck(obj, __pyx_mstate_global->__pyx_CyFunctionType)
#define __Pyx_CyOrPyCFunction_Check(obj)  __Pyx_TypeCheck2(obj, __pyx_mstate_global->__pyx_CyFunctionType, &PyCFunction_Type)
#define __Pyx_CyFunction_CheckExact(obj)  __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_CyFunctionType)
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void));
#undef __Pyx_IsSameCFunction
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCyOrCFunction(func, cfunc)
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func,
                                                         PyTypeObject *defaults_type);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(PyObject *module);
#if CYTHON_METH_FASTCALL
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
#if CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall)
#else
#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
#endif
#endif

/* CythonFunction.proto */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);

/* PyAttributeError_Check.proto */
#define __Pyx_PyExc_AttributeError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_AttributeError)

/* PyObjectVectorCallMethodKwBuilder.proto */
#if CYTHON_VECTORCALL && PY_VERSION_HEX >= 0x03090000
#define __Pyx_Object_VectorcallMethod_CallFromBuilder PyObject_VectorcallMethod
#else
static PyObject *__Pyx_Object_VectorcallMethod_CallFromBuilder(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames);
#endif

/* PyIndexError_Check.proto */
#define __Pyx_PyExc_IndexError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_IndexError)

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2) {
    return PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2);
}
#endif
#define __Pyx_PyErr_ExceptionMatches2(err1, err2)  __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
#ifdef PyExceptionInstance_Check
  #define __Pyx_PyBaseException_Check(obj) PyExceptionInstance_Check(obj)
#else
  #define __Pyx_PyBaseException_Check(obj) __Pyx_TypeCheck(obj, PyExc_BaseException)
#endif

/* PyValueError_Check.proto */
#define __Pyx_PyExc_ValueError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_ValueError)

/* ArgTypeTestFunc.export */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))

/* PyOSError_Check.proto */
#define __Pyx_PyExc_OSError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_OSError)

/* Intern.proto */
static PyObject* __Pyx_Intern(PyObject* s);

/* PyStopIteration_Check.proto */
#define __Pyx_PyExc_StopIteration_Check(obj)  __Pyx_TypeCheck(obj, PyExc_StopIteration)

/* IterNextPlain.proto (used by IterNext) */
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next_Plain(PyObject *iterator);
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject *__Pyx_GetBuiltinNext_LimitedAPI(void);
#endif

/* IterNext.proto */
#define __Pyx_PyIter_Next(obj) __Pyx_PyIter_Next2(obj, NULL)
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject *, PyObject *);

/* AssertionsEnabled.proto */
#if CYTHON_COMPILING_IN_LIMITED_API  ||  PY_VERSION_HEX >= 0x030C0000
  static int __pyx_assertions_enabled_flag;
  #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag)
  #if __clang__ || __GNUC__
  __attribute__((no_sanitize("thread")))
  #endif
  static int __Pyx_init_assertions_enabled(void) {
    PyObject *builtins, *debug, *debug_str;
    int flag;
    builtins = PyEval_GetBuiltins();
    if (!builtins) goto bad;
    debug_str = PyUnicode_FromStringAndSize("__debug__", 9);
    if (!debug_str) goto bad;
    debug = PyObject_GetItem(builtins, debug_str);
    Py_DECREF(debug_str);
    if (!debug) goto bad;
    flag = PyObject_IsTrue(debug);
    Py_DECREF(debug);
    if (flag == -1) goto bad;
    __pyx_assertions_enabled_flag = flag;
    return 0;
  bad:
    __pyx_assertions_enabled_flag = 1;
    return -1;
  }
#else
  #define __Pyx_init_assertions_enabled()  (0)
  #define __pyx_assertions_enabled()  (!Py_OptimizeFlag)
#endif

/* PyAssertionError_Check.proto */
#define __Pyx_PyExc_AssertionError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_AssertionError)

/* BuildPyUnicode.proto (used by COrdinalToPyUnicode) */
static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, const char* chars, int clength,
                                                int prepend_sign, char padding_char);

/* COrdinalToPyUnicode.proto (used by CIntToPyUnicode) */
static CYTHON_INLINE int __Pyx_CheckUnicodeValue(int value);
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromOrdinal_Padded(int value, Py_ssize_t width, char padding_char);

/* GCCDiagnostics.proto (used by CIntToPyUnicode) */
#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#define __Pyx_HAS_GCC_DIAGNOSTIC
#endif

/* IncludeStdlibH.proto (used by CIntToPyUnicode) */
#include <stdlib.h>

/* CIntToPyUnicode.proto */
#define __Pyx_PyUnicode_From_unsigned_int(value, width, padding_char, format_char) (\
    ((format_char) == ('c')) ?\
        __Pyx_uchar___Pyx_PyUnicode_From_unsigned_int(value, width, padding_char) :\
        __Pyx____Pyx_PyUnicode_From_unsigned_int(value, width, padding_char, format_char)\
    )
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_unsigned_int(unsigned int value, Py_ssize_t width, char padding_char);
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_unsigned_int(unsigned int value, Py_ssize_t width, char padding_char, char format_char);

/* CIntToPyUnicode.proto */
#define __Pyx_PyUnicode_From_int(value, width, padding_char, format_char) (\
    ((format_char) == ('c')) ?\
        __Pyx_uchar___Pyx_PyUnicode_From_int(value, width, padding_char) :\
        __Pyx____Pyx_PyUnicode_From_int(value, width, padding_char, format_char)\
    )
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char);
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char);

/* PyObjectCallMethod1.proto (used by CoroutineBase) */
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);

/* ReturnWithStopIteration.proto (used by CoroutineBase) */
static CYTHON_INLINE void __Pyx_ReturnWithStopIteration(PyObject* value, int async, int iternext);

/* CoroutineBase.proto (used by Generator) */
struct __pyx_CoroutineObject;
typedef PyObject *(*__pyx_coroutine_body_t)(struct __pyx_CoroutineObject *, PyThreadState *, PyObject *);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_ExcInfoStruct  _PyErr_StackItem
#else
typedef struct {
    PyObject *exc_type;
    PyObject *exc_value;
    PyObject *exc_traceback;
} __Pyx_ExcInfoStruct;
#endif
typedef struct __pyx_CoroutineObject {
    PyObject_HEAD
    __pyx_coroutine_body_t body;
    PyObject *closure;
    __Pyx_ExcInfoStruct gi_exc_state;
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *gi_weakreflist;
#endif
    PyObject *classobj;
    PyObject *yieldfrom;
    __Pyx_pyiter_sendfunc yieldfrom_am_send;
    PyObject *gi_name;
    PyObject *gi_qualname;
    PyObject *gi_modulename;
    PyObject *gi_code;
    PyObject *gi_frame;
#if CYTHON_USE_SYS_MONITORING && (CYTHON_PROFILE || CYTHON_TRACE)
    PyMonitoringState __pyx_pymonitoring_state[__Pyx_MonitoringEventTypes_CyGen_count];
    uint64_t __pyx_pymonitoring_version;
#endif
    int resume_label;
    char is_running;
} __pyx_CoroutineObject;
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
    PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
    PyObject *name, PyObject *qualname, PyObject *module_name);
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name);
static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self);
static int __Pyx_Coroutine_clear(PyObject *self);
static __Pyx_PySendResult __Pyx_Coroutine_AmSend(PyObject *self, PyObject *value, PyObject **retval);
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value);
static __Pyx_PySendResult __Pyx_Coroutine_Close(PyObject *self, PyObject **retval);
static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_Coroutine_SwapException(self)
#define __Pyx_Coroutine_ResetAndClearException(self)  __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state)
#else
#define __Pyx_Coroutine_SwapException(self) {\
    __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\
    __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\
    }
#define __Pyx_Coroutine_ResetAndClearException(self) {\
    __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\
    (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\
    }
#endif
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue)
#else
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue)
#endif
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue);
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state);
static char __Pyx_Coroutine_test_and_set_is_running(__pyx_CoroutineObject *gen);
static void __Pyx_Coroutine_unset_is_running(__pyx_CoroutineObject *gen);
static char __Pyx_Coroutine_get_is_running(__pyx_CoroutineObject *gen);
static PyObject *__Pyx_Coroutine_get_is_running_getter(PyObject *gen, void *closure);
#if __PYX_HAS_PY_AM_SEND == 2
static void __Pyx_SetBackportTypeAmSend(PyTypeObject *type, __Pyx_PyAsyncMethodsStruct *static_amsend_methods, __Pyx_pyiter_sendfunc am_send);
#endif
static PyObject *__Pyx_Coroutine_fail_reduce_ex(PyObject *self, PyObject *arg);

/* Generator.proto (used by GeneratorYieldFrom) */
#define __Pyx_Generator_USED
#define __Pyx_Generator_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_GeneratorType)
#define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\
    __Pyx__Coroutine_New(__pyx_mstate_global->__pyx_GeneratorType, body, code, closure, name, qualname, module_name)
static PyObject *__Pyx_Generator_Next(PyObject *self);
static int __pyx_Generator_init(PyObject *module);
static CYTHON_INLINE PyObject *__Pyx_Generator_GetInlinedResult(PyObject *self);

/* GeneratorYieldFrom.proto */
static CYTHON_INLINE __Pyx_PySendResult __Pyx_Generator_Yield_From(__pyx_CoroutineObject *gen, PyObject *source, PyObject **retval);

/* CBIntToPyUnicode.proto */
#define __Pyx_PyUnicode_FromBInt_bint(value)\
    ((value) ? __Pyx_NewRef(__pyx_mstate_global->__pyx_n_u_True) : __Pyx_NewRef(__pyx_mstate_global->__pyx_n_u_False))

/* CIntToPyUnicode.proto */
#define __Pyx_PyUnicode_From_long(value, width, padding_char, format_char) (\
    ((format_char) == ('c')) ?\
        __Pyx_uchar___Pyx_PyUnicode_From_long(value, width, padding_char) :\
        __Pyx____Pyx_PyUnicode_From_long(value, width, padding_char, format_char)\
    )
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_long(long value, Py_ssize_t width, char padding_char);
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_long(long value, Py_ssize_t width, char padding_char, char format_char);

/* PyRuntimeError_Check.proto */
#define __Pyx_PyExc_RuntimeError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_RuntimeError)

/* PyRange_Check.proto */
#if CYTHON_COMPILING_IN_PYPY && !defined(PyRange_Check)
  #define PyRange_Check(obj)  __Pyx_TypeCheck((obj), &PyRange_Type)
#endif

/* CIntToPyUnicode.proto */
#define __Pyx_PyUnicode_From_uint8_t(value, width, padding_char, format_char) (\
    ((format_char) == ('c')) ?\
        __Pyx_uchar___Pyx_PyUnicode_From_uint8_t(value, width, padding_char) :\
        __Pyx____Pyx_PyUnicode_From_uint8_t(value, width, padding_char, format_char)\
    )
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_uint8_t(uint8_t value, Py_ssize_t width, char padding_char);
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_uint8_t(uint8_t value, Py_ssize_t width, char padding_char, char format_char);

/* CIntToPyUnicode.proto */
#define __Pyx_PyUnicode_From_uint16_t(value, width, padding_char, format_char) (\
    ((format_char) == ('c')) ?\
        __Pyx_uchar___Pyx_PyUnicode_From_uint16_t(value, width, padding_char) :\
        __Pyx____Pyx_PyUnicode_From_uint16_t(value, width, padding_char, format_char)\
    )
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_uint16_t(uint16_t value, Py_ssize_t width, char padding_char);
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_uint16_t(uint16_t value, Py_ssize_t width, char padding_char, char format_char);

/* PyLongBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyLong_AddObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* AllocateExtensionType.proto */
static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final);

/* PyTrashcan.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TRASHCAN_BEGIN Py_TRASHCAN_BEGIN
#define __Pyx_TRASHCAN_END Py_TRASHCAN_END
#elif CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TRASHCAN_BEGIN_CONDITION(op, cond)\
    do {\
        PyThreadState *_tstate = NULL;\
        if (cond) {\
            _tstate = PyThreadState_GET();\
            if (_tstate->trash_delete_nesting >= PyTrash_UNWIND_LEVEL) {\
                _PyTrash_thread_deposit_object((PyObject*)(op));\
                break;\
            }\
            ++_tstate->trash_delete_nesting;\
        }
#define __Pyx_TRASHCAN_END\
        if (_tstate) {\
            --_tstate->trash_delete_nesting;\
            if (_tstate->trash_delete_later && _tstate->trash_delete_nesting <= 0)\
                _PyTrash_thread_destroy_chain();\
        }\
    } while (0);
#define __Pyx_TRASHCAN_BEGIN(op, dealloc) __Pyx_TRASHCAN_BEGIN_CONDITION(op,\
        __Pyx_PyObject_GetSlot(op, tp_dealloc, destructor) == (destructor)(dealloc))
#else
#define __Pyx_TRASHCAN_BEGIN(op, dealloc)
#define __Pyx_TRASHCAN_END
#endif

/* CheckTypeForFreelists.proto */
#if CYTHON_USE_FREELISTS
#if CYTHON_USE_TYPE_SPECS
#define __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, expected_tp, expected_size) ((int) ((t) == (expected_tp)))
#define __PYX_CHECK_TYPE_FOR_FREELIST_FLAGS  Py_TPFLAGS_IS_ABSTRACT
#else
#define __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, expected_tp, expected_size) ((int) ((t)->tp_basicsize == (expected_size)))
#define __PYX_CHECK_TYPE_FOR_FREELIST_FLAGS  (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)
#endif
#define __PYX_CHECK_TYPE_FOR_FREELISTS(t, expected_tp, expected_size)\
    (__PYX_CHECK_FINAL_TYPE_FOR_FREELISTS((t), (expected_tp), (expected_size)) &\
     (int) (!__Pyx_PyType_HasFeature((t), __PYX_CHECK_TYPE_FOR_FREELIST_FLAGS)))
#endif

/* ValidateBasesTuple.proto (used by PyType_Ready) */
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases);
#endif

/* PyType_Ready.proto */
CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t);

/* DelItemOnTypeDict.proto (used by SetupReduce) */
static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k);
#define __Pyx_DelItemOnTypeDict(tp, k) __Pyx__DelItemOnTypeDict((PyTypeObject*)tp, k)

/* SetupReduce.proto */
static int __Pyx_setup_reduce(PyObject* type_obj);

/* FormatTypeName.proto (used by ValidateExternBase) */
#if CYTHON_COMPILING_IN_LIMITED_API
typedef PyObject *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%U"
#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_PyType_GetFullyQualifiedName PyType_GetFullyQualifiedName
#else
static __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp);
#endif
#else  // !LIMITED_API
typedef const char *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%.200s"
#define __Pyx_PyType_GetFullyQualifiedName(tp) ((tp)->tp_name)
#define __Pyx_DECREF_TypeName(obj)
#endif

/* ValidateExternBase.proto */
static int __Pyx_validate_extern_base(PyTypeObject *base);

/* SetVTable.proto */
static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable);

/* GetVTable.proto (used by MergeVTables) */
static void* __Pyx_GetVtable(PyTypeObject *type);

/* MergeVTables.proto */
static int __Pyx_MergeVtables(PyTypeObject *type);

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto_3_2_4
#define __PYX_HAVE_RT_ImportType_proto_3_2_4
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#include <stdalign.h>
#endif
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
#define __PYX_GET_STRUCT_ALIGNMENT_3_2_4(s) alignof(s)
#else
#define __PYX_GET_STRUCT_ALIGNMENT_3_2_4(s) sizeof(void*)
#endif
enum __Pyx_ImportType_CheckSize_3_2_4 {
   __Pyx_ImportType_CheckSize_Error_3_2_4 = 0,
   __Pyx_ImportType_CheckSize_Warn_3_2_4 = 1,
   __Pyx_ImportType_CheckSize_Ignore_3_2_4 = 2
};
static PyTypeObject *__Pyx_ImportType_3_2_4(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_4 check_size);
#endif

/* HasAttr.proto (used by ImportImpl) */
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_HasAttr(o, n)  PyObject_HasAttrWithError(o, n)
#else
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
#endif

/* ImportImpl.export */
static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level);

/* Import.proto */
static CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level);

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* Py3UpdateBases.proto */
static PyObject* __Pyx_PEP560_update_bases(PyObject *bases);

/* ClassMethod.proto */
#if !CYTHON_COMPILING_IN_LIMITED_API
#include "descrobject.h"
#endif
CYTHON_UNUSED static PyObject* __Pyx_Method_ClassMethod(PyObject *method);

/* CyFunctionClassCell.proto */
static int __Pyx_CyFunction_InitClassCell(PyObject *cyfunctions, PyObject *classobj);

/* ListPack.proto */
static PyObject *__Pyx_PyList_Pack(Py_ssize_t n, ...);

/* GetNameInClass.proto */
#define __Pyx_GetNameInClass(var, nmspace, name)  (var) = __Pyx__GetNameInClass(nmspace, name)
static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name);

/* CLineInTraceback.proto (used by AddTraceback) */
#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#else
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#endif

/* CodeObjectCache.proto (used by AddTraceback) */
#if CYTHON_COMPILING_IN_LIMITED_API
typedef PyObject __Pyx_CachedCodeObjectType;
#else
typedef PyCodeObject __Pyx_CachedCodeObjectType;
#endif
typedef struct {
    __Pyx_CachedCodeObjectType* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_int_type accessor_count;
  #endif
};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object);

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* CheckUnpickleChecksum.proto */
static CYTHON_INLINE int __Pyx_CheckUnpickleChecksum(long checksum, long checksum1, long checksum2, long checksum3, const char *members);

/* CIntFromPy.proto */
static CYTHON_INLINE size_t __Pyx_PyLong_As_size_t(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uint32_t(uint32_t value);

/* CIntFromPy.proto */
static CYTHON_INLINE uint32_t __Pyx_PyLong_As_uint32_t(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value);

/* CIntFromPy.proto */
static CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From___pyx_anon_enum(int value);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_char(unsigned char value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uint16_t(uint16_t value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uint8_t(uint8_t value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_char(char value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uint64_t(uint64_t value);

/* UpdateUnpickledDict.proto */
static int __Pyx_UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index);

/* GetRuntimeVersion.proto */
#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
static unsigned long __Pyx_cached_runtime_version = 0;
static void __Pyx_init_runtime_version(void);
#else
#define __Pyx_init_runtime_version()
#endif
static unsigned long __Pyx_get_runtime_version(void);

/* CStringEquals.proto */
static CYTHON_INLINE int __Pyx_StrEq(const char *, const char *);

/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);

/* DecompressString.proto */
static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo);

/* MultiPhaseInitModuleState.proto */
#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
static PyObject *__Pyx_State_FindModule(void*);
static int __Pyx_State_AddModule(PyObject* module, void*);
static int __Pyx_State_RemoveModule(void*);
#elif CYTHON_USE_MODULE_STATE
#define __Pyx_State_FindModule PyState_FindModule
#define __Pyx_State_AddModule PyState_AddModule
#define __Pyx_State_RemoveModule PyState_RemoveModule
#endif

/* #### Code section: module_declarations ### */
/* CythonABIVersion.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
    #if CYTHON_METH_FASTCALL
        #define __PYX_FASTCALL_ABI_SUFFIX  "_fastcall"
    #else
        #define __PYX_FASTCALL_ABI_SUFFIX
    #endif
    #define __PYX_LIMITED_ABI_SUFFIX "limited" __PYX_FASTCALL_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX
#else
    #define __PYX_LIMITED_ABI_SUFFIX
#endif
#if __PYX_HAS_PY_AM_SEND == 1
    #define __PYX_AM_SEND_ABI_SUFFIX
#elif __PYX_HAS_PY_AM_SEND == 2
    #define __PYX_AM_SEND_ABI_SUFFIX "amsendbackport"
#else
    #define __PYX_AM_SEND_ABI_SUFFIX "noamsend"
#endif
#ifndef __PYX_MONITORING_ABI_SUFFIX
    #define __PYX_MONITORING_ABI_SUFFIX
#endif
#if CYTHON_USE_TP_FINALIZE
    #define __PYX_TP_FINALIZE_ABI_SUFFIX
#else
    #define __PYX_TP_FINALIZE_ABI_SUFFIX "nofinalize"
#endif
#if CYTHON_USE_FREELISTS || !defined(__Pyx_AsyncGen_USED)
    #define __PYX_FREELISTS_ABI_SUFFIX
#else
    #define __PYX_FREELISTS_ABI_SUFFIX "nofreelists"
#endif
#define CYTHON_ABI  __PYX_ABI_VERSION __PYX_LIMITED_ABI_SUFFIX __PYX_MONITORING_ABI_SUFFIX __PYX_TP_FINALIZE_ABI_SUFFIX __PYX_FREELISTS_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX
#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_f_7setools_9policyrep_7Boolean_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_bool_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_f_7setools_9policyrep_11Conditional_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_node_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_f_7setools_9policyrep_19ConditionalOperator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_expr_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_22BooleanHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19ConditionalIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_node_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_23ConditionalExprIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_expr_t *__pyx_v_head); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_f_7setools_9policyrep_6Bounds_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_parent, PyObject *__pyx_v_child); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_18TypeboundsIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_10Constraint_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13Validatetrans_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_f_7setools_9policyrep_20ConstraintExpression_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_f_7setools_9policyrep_18ConstraintExprNode_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_18ConstraintIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_21ValidatetransIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_22ConstraintExprIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_head); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Context *__pyx_f_7setools_9policyrep_7Context_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, context_struct_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Context *__pyx_f_7setools_9policyrep_7Context_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_ctx); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Default *__pyx_f_7setools_9policyrep_7Default_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, PyObject *__pyx_v_user, PyObject *__pyx_v_role, PyObject *__pyx_v_type_, PyObject *__pyx_v_range_); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_f_7setools_9policyrep_5FSUse_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_f_7setools_9policyrep_8Genfscon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol, PyObject *__pyx_v_fstype); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13FSUseIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_16GenfsconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, genfs_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_24GenfsconOcontextIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head, PyObject *__pyx_v_fstype); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_f_7setools_9policyrep_10InitialSID_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct ocontext *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_18InitialSIDIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Category *__pyx_f_7setools_9policyrep_8Category_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cat_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_f_7setools_9policyrep_11Sensitivity_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, level_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_f_7setools_9policyrep_9LevelDecl_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, level_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, mls_level_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_name); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, mls_range_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_name); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_23CategoryHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_26SensitivityHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_24LevelDeclHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_23CategoryEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_f_7setools_9policyrep_7MLSRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, range_trans_t *__pyx_v_symbol, mls_range_t *__pyx_v_rng); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_15MLSRuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_f_7setools_9policyrep_12Ibendportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_f_7setools_9policyrep_9Ibpkeycon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_f_7setools_9policyrep_8Netifcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_f_7setools_9policyrep_7Nodecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol, PyObject *__pyx_v_ip_version); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_f_7setools_9policyrep_7Portcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_20IbendportconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_17IbpkeyconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_16NetifconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_15NodeconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head, PyObject *__pyx_v_ip_version); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_15PortconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Common *__pyx_f_7setools_9policyrep_6Common_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, common_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_f_7setools_9policyrep_8ObjClass_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, class_datum_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_21CommonHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_23ObjClassHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_24PermissionVectorIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, uint32_t __pyx_v_vector); /* proto*/
static CYTHON_INLINE int __pyx_f_7setools_9policyrep_12PolicyObject__eq(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_other); /* proto*/
static void __pyx_f_7setools_9policyrep_15HashtabIterator__next_bucket(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto*/
static void __pyx_f_7setools_9policyrep_15HashtabIterator__next_node(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_f_7setools_9policyrep_16PolicyCapability_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, size_t __pyx_v_bit); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_24PolicyCapabilityIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_f_7setools_9policyrep_9RoleAllow_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_allow_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_f_7setools_9policyrep_14RoleTransition_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_trans_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_17RoleAllowIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_allow_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_22RoleTransitionIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_trans_t *__pyx_v_head); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Role *__pyx_f_7setools_9policyrep_4Role_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_datum_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19RoleHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19RoleEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap); /* proto*/
static CYTHON_INLINE cond_bool_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE cat_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE class_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_common_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE level_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE role_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE type_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE user_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_policy(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_filename); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_running_policy(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__set_permissive_flags(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__create_mls_val_to_struct(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_category_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_sensitivity_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_type_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__rebuild_attrs_from_map(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__synthesize_attrs(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_constraint_counts(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_terule_counts(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_f_7setools_9policyrep_6AVRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_f_7setools_9policyrep_11AVRuleXperm_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TERule *__pyx_f_7setools_9policyrep_6TERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_f_7setools_9policyrep_14FileNameTERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, filename_trans_key_t *__pyx_v_key, struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_stype, size_t __pyx_v_otype); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_14TERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct avtab *__pyx_v_table); /* proto*/
static void __pyx_f_7setools_9policyrep_14TERuleIterator__next_bucket(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto*/
static void __pyx_f_7setools_9policyrep_14TERuleIterator__next_node(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_25ConditionalTERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_av_list_t *__pyx_v_head, PyObject *__pyx_v_conditional, PyObject *__pyx_v_cond_block); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Type *__pyx_f_7setools_9policyrep_4Type_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE void __pyx_f_7setools_9policyrep_4Type__load_attributes(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_f_7setools_9policyrep_13TypeAttribute_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_datum_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13TypeAttribute_load_types(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19TypeHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_User *__pyx_f_7setools_9policyrep_4User_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, user_datum_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19UserHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19UserEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_f_7setools_9policyrep_13Devicetreecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_f_7setools_9policyrep_8Iomemcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_f_7setools_9policyrep_9Ioportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_f_7setools_9policyrep_12Pcidevicecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_f_7setools_9policyrep_7Pirqcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_21DevicetreeconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_16IomemconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_17IoportconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_20PcideviceconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_15PirqconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/

/* Module declarations from "libc.string" */

/* Module declarations from "libc.stdio" */

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.type" */

/* Module declarations from "cpython" */

/* Module declarations from "cpython.object" */

/* Module declarations from "cpython.exc" */

/* Module declarations from "cpython.mem" */

/* Module declarations from "libc.errno" */

/* Module declarations from "libc.stdint" */

/* Module declarations from "libc.stdlib" */

/* Module declarations from "sepol" */

/* Module declarations from "selinux" */

/* Module declarations from "setools.policyrep" */
static PyObject *__pyx_v_7setools_9policyrep__cond_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__cat_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__sens_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__leveldecl_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__common_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__objclass_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__type_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__typeattr_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__user_cache = 0;
static void __pyx_f_7setools_9policyrep_sepol_logging_callback(void *, sepol_handle_t *, char const *, ...); /*proto*/
static void __pyx_f_7setools_9policyrep_ebitmap_set_bit(ebitmap_t *, unsigned int, int); /*proto*/
static int __pyx_f_7setools_9policyrep_hashtab_insert(hashtab_t, hashtab_key_t, hashtab_datum_t); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep_flatten_list(PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep_expand_cat_range(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_Category *, struct __pyx_obj_7setools_9policyrep_Category *); /*proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_f_7setools_9policyrep_type_or_attr_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *); /*proto*/
static CYTHON_INLINE int __pyx_f_7setools_9policyrep_type_is_alias(type_datum_t *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Boolean__set_state(struct __pyx_obj_7setools_9policyrep_Boolean *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Conditional__set_state(struct __pyx_obj_7setools_9policyrep_Conditional *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConditionalOperator__set_state(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Bounds__set_state(struct __pyx_obj_7setools_9policyrep_Bounds *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseConstraint__set_state(struct __pyx_obj_7setools_9policyrep_BaseConstraint *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Constraint__set_state(struct __pyx_obj_7setools_9policyrep_Constraint *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Validatetrans__set_state(struct __pyx_obj_7setools_9policyrep_Validatetrans *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExpression__set_state(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExprNode__set_state(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Context__set_state(struct __pyx_obj_7setools_9policyrep_Context *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Default__set_state(struct __pyx_obj_7setools_9policyrep_Default *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_DefaultRange__set_state(struct __pyx_obj_7setools_9policyrep_DefaultRange *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_FSUse__set_state(struct __pyx_obj_7setools_9policyrep_FSUse *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_GenfsFiletype__set_state(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Genfscon__set_state(struct __pyx_obj_7setools_9policyrep_Genfscon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_InitialSID__set_state(struct __pyx_obj_7setools_9policyrep_InitialSID *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Category__set_state(struct __pyx_obj_7setools_9policyrep_Category *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Sensitivity__set_state(struct __pyx_obj_7setools_9policyrep_Sensitivity *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseMLSLevel__set_state(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_LevelDecl__set_state(struct __pyx_obj_7setools_9policyrep_LevelDecl *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Level__set_state(struct __pyx_obj_7setools_9policyrep_Level *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Range__set_state(struct __pyx_obj_7setools_9policyrep_Range *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_MLSRule__set_state(struct __pyx_obj_7setools_9policyrep_MLSRule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ibendportcon__set_state(struct __pyx_obj_7setools_9policyrep_Ibendportcon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ibpkeycon__set_state(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Netifcon__set_state(struct __pyx_obj_7setools_9policyrep_Netifcon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Nodecon__set_state(struct __pyx_obj_7setools_9policyrep_Nodecon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Portcon__set_state(struct __pyx_obj_7setools_9policyrep_Portcon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Common__set_state(struct __pyx_obj_7setools_9policyrep_Common *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ObjClass__set_state(struct __pyx_obj_7setools_9policyrep_ObjClass *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PermissionVectorIterator__set_state(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyObject__set_state(struct __pyx_obj_7setools_9policyrep_PolicyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicySymbol__set_state(struct __pyx_obj_7setools_9policyrep_PolicySymbol *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ocontext__set_state(struct __pyx_obj_7setools_9policyrep_Ocontext *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyIterator__set_state(struct __pyx_obj_7setools_9policyrep_PolicyIterator *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyCapability__set_state(struct __pyx_obj_7setools_9policyrep_PolicyCapability *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_RoleAllow__set_state(struct __pyx_obj_7setools_9policyrep_RoleAllow *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_RoleTransition__set_state(struct __pyx_obj_7setools_9policyrep_RoleTransition *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Role__set_state(struct __pyx_obj_7setools_9policyrep_Role *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyRule__set_state(struct __pyx_obj_7setools_9policyrep_PolicyRule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseTERule__set_state(struct __pyx_obj_7setools_9policyrep_BaseTERule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_AVRule__set_state(struct __pyx_obj_7setools_9policyrep_AVRule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_XpermSet__set_state(struct __pyx_obj_7setools_9policyrep_XpermSet *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_IoctlSet__set_state(struct __pyx_obj_7setools_9policyrep_IoctlSet *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_AVRuleXperm__set_state(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_TERule__set_state(struct __pyx_obj_7setools_9policyrep_TERule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_FileNameTERule__set_state(struct __pyx_obj_7setools_9policyrep_FileNameTERule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseType__set_state(struct __pyx_obj_7setools_9policyrep_BaseType *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Type__set_state(struct __pyx_obj_7setools_9policyrep_Type *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_TypeAttribute__set_state(struct __pyx_obj_7setools_9policyrep_TypeAttribute *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_User__set_state(struct __pyx_obj_7setools_9policyrep_User *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Devicetreecon__set_state(struct __pyx_obj_7setools_9policyrep_Devicetreecon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Iomemcon__set_state(struct __pyx_obj_7setools_9policyrep_Iomemcon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ioportcon__set_state(struct __pyx_obj_7setools_9policyrep_Ioportcon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Pcidevicecon__set_state(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Pirqcon__set_state(struct __pyx_obj_7setools_9policyrep_Pirqcon *, PyObject *); /*proto*/
/* #### Code section: typeinfo ### */
/* #### Code section: before_global_var ### */
#define __Pyx_MODULE_NAME "setools.policyrep"
extern int __pyx_module_is_main_setools__policyrep;
int __pyx_module_is_main_setools__policyrep = 0;

/* Implementation of "setools.policyrep" */
/* #### Code section: global_var ### */
static PyObject *__pyx_builtin_super;
static PyObject *__pyx_builtin_map;
static PyObject *__pyx_builtin_sorted;
static PyObject *__pyx_builtin_id;
static PyObject *__pyx_builtin_sum;
/* #### Code section: string_decls ### */
static const char __pyx_k_rb[] = "rb";
static const char __pyx_k__23[] = "";
static const char __pyx_k_policy[] = "policy";
static const char __pyx_k_ttr_010zd[] = "@ttr%010zd";
static const char __pyx_k_key_policy[] = "key, policy";
static const char __pyx_k_key_name_policy[] = "key, name, policy";
static const char __pyx_k_context_key_policy[] = "context, key, policy";
static const char __pyx_k_high_key_low_policy[] = "high, key, low, policy";
static const char __pyx_k_key_name_policy_state[] = "key, name, policy, state";
static const char __pyx_k_types_key_name_policy[] = "_types, key, name, policy";
static const char __pyx_k_context_irq_key_policy[] = "context, irq, key, policy";
static const char __pyx_k_addr_context_key_policy[] = "addr, context, key, policy";
static const char __pyx_k_context_key_name_policy[] = "context, key, name, policy";
static const char __pyx_k_context_key_path_policy[] = "context, key, path, policy";
static const char __pyx_k_context_key_policy_ports[] = "context, key, policy, ports";
static const char __pyx_k_context_device_key_policy[] = "context, device, key, policy";
static const char __pyx_k_context_key_name_policy_port[] = "context, key, name, policy, port";
static const char __pyx_k_common__constraints__defaults[] = "_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy";
static const char __pyx_k_aliases__value_key_name_policy[] = "_aliases, _value, key, name, policy";
static const char __pyx_k_conditional__conditional_block[] = "_conditional, _conditional_block, _xperm_type, extended, key, origin, policy, rule_string, ruletype, source, target, tclass";
static const char __pyx_k_context_fs_key_policy_ruletype[] = "context, fs, key, policy, ruletype";
static const char __pyx_k_expression__names__symbol_type[] = "_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users";
static const char __pyx_k_aliases__attrs_ispermissive_key[] = "_aliases, _attrs, ispermissive, key, name, policy, value";
static const char __pyx_k_aliases__leveldecl__value_key_n[] = "_aliases, _leveldecl, _value, key, name, policy";
static const char __pyx_k_categories_key_policy_sensitivi[] = "_categories, key, policy, sensitivity";
static const char __pyx_k_context_key_netif_packet_policy[] = "context, key, netif, packet, policy";
static const char __pyx_k_context_key_pkeys_policy_subnet[] = "context, key, pkeys, policy, subnet_prefix";
static const char __pyx_k_curr_perm_max_perm_table_policy[] = "curr, perm_max, perm_table, policy, vector";
static const char __pyx_k_default_default_range_key_polic[] = "_default, default_range, key, policy, ruletype, tclass";
static const char __pyx_k_default_key_policy_ruletype_tcl[] = "_default, key, policy, ruletype, tclass";
static const char __pyx_k_infix__postfix_key_mls_policy_r[] = "_infix, _postfix, key, mls, policy, roles, types, users";
static const char __pyx_k_level__range_key_name_policy_ro[] = "_level, _range, key, name, policy, roles";
static const char __pyx_k_perm_table_key_name_perms_polic[] = "_perm_table, key, name, perms, policy";
static const char __pyx_k_postfix_expression_booleans_key[] = "_postfix_expression, booleans, key, policy";
static const char __pyx_k_range_key_policy_role_type__use[] = "_range, key, policy, role, type_, user";
static const char __pyx_k_child_key_parent_policy_ruletype[] = "child, key, parent, policy, ruletype";
static const char __pyx_k_conditional__conditional_block_2[] = "_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass";
static const char __pyx_k_conditional__conditional_block_3[] = "_conditional, _conditional_block, _xperm_type, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass";
static const char __pyx_k_conditional__conditional_block_4[] = "_conditional, _conditional_block, _xperm_type, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass";
static const char __pyx_k_context_filetype_fs_key_path_pol[] = "context, filetype, fs, key, path, policy, tclass";
static const char __pyx_k_context_ip_version_key_network_p[] = "context, ip_version, key, network, policy";
static const char __pyx_k_context_key_policy_ports_protoco[] = "context, key, policy, ports, protocol";
static const char __pyx_k_dft_extended_key_origin_policy_r[] = "dft, extended, key, origin, policy, ruletype, source, target, tclass";
static const char __pyx_k_evaluate_key_policy_precedence_t[] = "evaluate, key, policy, precedence, text, unary";
static const char __pyx_k_expression_key_perms_policy_rule[] = "expression, key, perms, policy, ruletype, tclass";
static const char __pyx_k_expression_key_policy_ruletype_t[] = "expression, key, policy, ruletype, tclass";
static const char __pyx_k_extended_key_origin_policy_rng_r[] = "extended, key, origin, policy, rng, ruletype, source, target, tclass";
static const char __pyx_k_extended_key_origin_policy_rulet[] = "extended, key, origin, policy, ruletype, source, target";
/* #### Code section: decls ### */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum___str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_2__format__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_spec); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_4__eq__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_6__hash__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_8lookup(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_default_factory, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_4__missing__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_lookup_boolean_name_sub(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_statement(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_5state___get__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_11Conditional___contains__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_2__str__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_11Conditional_4__hash__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_6__eq__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_8evaluate(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_10expression(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_12false_rules(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_14statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_16true_rules(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_11truth_table_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_18truth_table(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_8booleans___get__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_20__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_22__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda3(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda4(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda6(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator___str__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_2statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_10precedence___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_5unary___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_8evaluate___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_19ConditionalIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_6Bounds___hash__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_2__eq__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_4__lt__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_6statement(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_6parent___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_5child___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_18TypeboundsIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_5perms___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_6tclass___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_10expression___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint___reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_2__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_statement(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_5perms___get__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_5perms___get__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_statement(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___3genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression___str__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_2__getitem__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v_idx); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_4__iter__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_6__eq__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_lambda_funcdef_lambda9(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_8infix(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_10statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_3mls___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5users___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5roles___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5types___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_12__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_14__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_3genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_6genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_9genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode___iter__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static int __pyx_pf_7setools_9policyrep_18ConstraintExprNode_2__contains__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v_item); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_18ConstraintExprNode_4__len__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_6__getitem__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v_idx); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_5names___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_11symbol_type___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_8statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator___next__(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_18ConstraintIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator___next__(struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator___next__(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context___str__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_6range____get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_2statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_4user___get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_4role___get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_5type____get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultValue_from_default_range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_range_); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17DefaultRangeValue_from_default_range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_range_); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default___eq__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_7Default_2__hash__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_4__lt__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_7default___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_6statement(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_6tclass___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange___eq__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_12DefaultRange_2__hash__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_4__lt__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_6statement(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_13default_range___get__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_12FileContexts___cinit__(struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self, struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_fc_path); /* proto */
static void __pyx_pf_7setools_9policyrep_12FileContexts_2__dealloc__(struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12FileContexts_4lookup(struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self, PyObject *__pyx_v_path, PyObject *__pyx_v_filetype); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12FileContexts_6policy___get__(struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12FileContexts_4path___get__(struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12FileContexts_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12FileContexts_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_5FSUse___hash__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_2__lt__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_4statement(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_2fs___get__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_pf_7setools_9policyrep_13GenfsFiletype_from_class(PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_tclass); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype_2__str__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_8Genfscon___hash__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_2__lt__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_4statement(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_2fs___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_8filetype___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_6tclass___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_4path___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator___next__(struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator___iter__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_2__next__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_16GenfsconIterator_4__len__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator___next__(struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID___str__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_2statement(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_4name___get__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator___next__(struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_8Category___hash__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_2__lt__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_4aliases(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_6statement(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_6_value___get__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_11Sensitivity___hash__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_2__ge__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_4__gt__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_6__le__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_8__lt__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_10aliases(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_12level_decl(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_14statement(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_6_value___get__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_16__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_18__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_lambda_funcdef_lambda14(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_114__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_lambda_funcdef_lambda15(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel___str__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_2categories(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_11sensitivity___get__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_9LevelDecl___hash__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_2__eq__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_4__ge__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_6__gt__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_8__le__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_10__lt__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_12statement(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_14__reduce_cython__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_16__setstate_cython__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_19factory_from_string_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_5Level___hash__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_2__eq__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_4__ge__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_6__gt__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_8__le__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_10__lt__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_12__xor__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_14statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_16__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_18__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range___str__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_5Range_2__hash__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static int __pyx_pf_7setools_9policyrep_5Range_4__contains__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_6__eq__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_8__ge__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_10__gt__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_12__le__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_14__lt__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_16__xor__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_18dom(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_20domby(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_22statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_3low___get__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_4high___get__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_24__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_26__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_7MLSRule___hash__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_2__lt__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_7default___get__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_4expand(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_7statement(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_6tclass___get__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator___next__(struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14IbpkeyconRange___post_init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14IbpkeyconRange_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PortconRange___post_init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PortconRange_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_12Ibendportcon___hash__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4statement(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4name___get__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4port___get__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_9Ibpkeycon___hash__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_2__lt__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_4statement(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_13subnet_prefix___get__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_5pkeys___get__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_8Netifcon___hash__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_4statement(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_5netif___get__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_6packet___get__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_7Nodecon___hash__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_2__lt__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_4statement(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_10ip_version___get__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_7network___get__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_7Portcon___hash__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_4statement(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_5ports___get__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_8protocol___get__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator___next__(struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator___next__(struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator___next__(struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator___next__(struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator___next__(struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_6Common___contains__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Common_2statement(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Common_5perms___get__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Common_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Common_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_8ObjClass___contains__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_6common___get__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_2constraints(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_4defaults(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_6statement(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_8validatetrans(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_5perms___get__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator___next__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_2__len__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_4reset(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_12PolicyObject___hash__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_2__copy__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_4__deepcopy__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_6__eq__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_8__ne__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_10__lt__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_12__str__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_14__repr__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_16statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_6policy___get__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_18__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_20__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_12PolicySymbol___contains__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_2__str__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_4expand(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_4name___get__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_7__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_9__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext_7context___get__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext___reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext_2__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator___iter__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_2__next__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_14PolicyIterator_4__len__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_6reset(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_15EbitmapIterator_2__len__(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_4reset(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_15HashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator___next__(struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_16OcontextIterator_2__len__(struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability___eq__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_16PolicyCapability_2__hash__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_4statement(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator___next__(struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_9RoleAllow___hash__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_2__lt__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_4expand(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_7statement(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_14RoleTransition___hash__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_2__lt__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_7default___get__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_4expand(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_7statement(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_6tclass___get__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_17RoleAllowIterator_2__len__(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_4reset(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_2__len__(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_4reset(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_15dominated_roles___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_types(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_9statement_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_2statement(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_11conditional___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_17conditional_block___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_7default___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_8filename___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_5perms___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6tclass___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_10xperm_type___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_enabled(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_2expand(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6source___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6target___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6origin___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_8extended___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_13SELinuxPolicy___cinit__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_policyfile); /* proto */
static void __pyx_pf_7setools_9policyrep_13SELinuxPolicy_2__dealloc__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_4__repr__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_6__str__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_8__copy__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10__deepcopy__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11allow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16auditallow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13boolean_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11class_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12common_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17conditional_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16constraint_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12fs_use_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14genfscon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17initialsids_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14netifcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16neverallow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12polcap_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13portcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16role_allow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21role_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10role_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_change_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10type_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_member_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21type_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16typebounds_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10user_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12lookup_boolean(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14lookup_category(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16lookup_class(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18lookup_common(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20lookup_context(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22lookup_level(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_level); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_24lookup_sensitivity(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_26lookup_range(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_range_); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_28lookup_role(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_30lookup_type(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_32lookup_type_or_attr(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_34lookup_typeattr(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_36lookup_user(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_38bools(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_40bounds(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_42categories(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_44classes(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_46commons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_48defaults(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_51levels(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_53polcaps(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_55roles(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_57sensitivities(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_59types(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_61typeattributes(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_63users(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_65conditionals(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_67mlsrules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_69rbacrules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_71terules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_74constraints(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_77fs_uses(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_79genfscons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_81ibendportcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_83ibpkeycons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_85initialsids(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_87netifcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_89nodecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_91portcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_93devicetreecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_95iomemcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_97ioportcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_99pcidevicecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_101pirqcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_4path___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14handle_unknown___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15target_platform___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_7version___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_3mls___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_103__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_105__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_8filename___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_11conditional___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_17conditional_block___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_enabled(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self, PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_8extended___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_10xperm_type___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_6tclass___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_7factory_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_6AVRule___hash__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_2__lt__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_7default___get__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_15derive_expanded_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_4derive_expanded(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_source, struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_target, PyObject *__pyx_v_perms); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_6expand(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_9statement(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_5perms___get__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_11__reduce_cython__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_13__setstate_cython__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_116__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_lambda_funcdef_lambda28(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet___format__(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self, PyObject *__pyx_v_spec); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_2__str__(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_4__repr__(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_6ranges_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_118__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_lambda_funcdef_lambda30(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_6ranges(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_8IoctlSet___init__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_11AVRuleXperm___hash__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_2__lt__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_7default___get__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_4expand(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_7statement(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_5perms___get__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_6TERule___hash__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_2__lt__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_5perms___get__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_7default___get__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_4expand(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_7statement(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_14FileNameTERule___hash__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_2__lt__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_5perms___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_7default___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_4expand(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_7statement(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_8filename___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator___next__(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_14TERuleIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_4ruletype_count(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_4ruletype_count(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator__next_stype(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_2__next__(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_7__len___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_4__len__(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_expand(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_2attributes(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_4aliases(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_expand(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_3attributes(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_5aliases(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_9statement_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_7statement(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_12ispermissive___get__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_13TypeAttribute___contains__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_2__iter__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_13TypeAttribute_4__len__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_6expand(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_8attributes(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_10aliases(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_12ispermissive___get__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_12statement(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_14__reduce_cython__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_16__setstate_cython__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_7factory_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_9mls_level___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_9mls_range___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_9statement_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_statement(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_5roles___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13IomemconRange___post_init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13IomemconRange_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14IoportconRange___post_init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14IoportconRange_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_statement(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_4path___get__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_statement(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_4addr___get__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_statement(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_5ports___get__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_statement(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_6device___get__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_statement(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_3irq___get__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator___next__(struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator___next__(struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator___next__(struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator___next__(struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator___next__(struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_2__pyx_unpickle_Boolean(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4__pyx_unpickle_Conditional(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6__pyx_unpickle_ConditionalOperator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8__pyx_unpickle_Bounds(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10__pyx_unpickle_BaseConstraint(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12__pyx_unpickle_Constraint(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14__pyx_unpickle_Validatetrans(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16__pyx_unpickle_ConstraintExpression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18__pyx_unpickle_ConstraintExprNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20__pyx_unpickle_Context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22__pyx_unpickle_Default(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24__pyx_unpickle_DefaultRange(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_26__pyx_unpickle_FSUse(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28__pyx_unpickle_GenfsFiletype(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_30__pyx_unpickle_Genfscon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_32__pyx_unpickle_InitialSID(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_34__pyx_unpickle_Category(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_36__pyx_unpickle_Sensitivity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_38__pyx_unpickle_BaseMLSLevel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_40__pyx_unpickle_LevelDecl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_42__pyx_unpickle_Level(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_44__pyx_unpickle_Range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_46__pyx_unpickle_MLSRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_48__pyx_unpickle_Ibendportcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_50__pyx_unpickle_Ibpkeycon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_52__pyx_unpickle_Netifcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_54__pyx_unpickle_Nodecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_56__pyx_unpickle_Portcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_58__pyx_unpickle_Common(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_60__pyx_unpickle_ObjClass(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_62__pyx_unpickle_PermissionVectorIterator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_64__pyx_unpickle_PolicyObject(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_66__pyx_unpickle_PolicySymbol(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_68__pyx_unpickle_Ocontext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_70__pyx_unpickle_PolicyIterator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_72__pyx_unpickle_PolicyCapability(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_74__pyx_unpickle_RoleAllow(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_76__pyx_unpickle_RoleTransition(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_78__pyx_unpickle_Role(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_80__pyx_unpickle_PolicyRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_82__pyx_unpickle_BaseTERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_84__pyx_unpickle_AVRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_86__pyx_unpickle_XpermSet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_88__pyx_unpickle_IoctlSet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_90__pyx_unpickle_AVRuleXperm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_92__pyx_unpickle_TERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_94__pyx_unpickle_FileNameTERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_96__pyx_unpickle_BaseType(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_98__pyx_unpickle_Type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_100__pyx_unpickle_TypeAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_102__pyx_unpickle_User(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_104__pyx_unpickle_Devicetreecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_106__pyx_unpickle_Iomemcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_108__pyx_unpickle_Ioportcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_110__pyx_unpickle_Pcidevicecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_112__pyx_unpickle_Pirqcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_tp_new_7setools_9policyrep_FileContexts(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsFiletype(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyObject(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Range(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_BaseMLSLevel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Level(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_LevelDecl(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Default(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_DefaultRange(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Context(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExprNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExpression(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_BaseConstraint(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Validatetrans(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Constraint(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Bounds(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalOperator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Conditional(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicySymbol(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ObjClass(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Common(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Sensitivity(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Category(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Boolean(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Ocontext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Portcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Nodecon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Netifcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Ibpkeycon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Ibendportcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_InitialSID(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Genfscon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_FSUse(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PermissionVectorIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExprIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ValidatetransIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalExprIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_CategoryEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_HashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ObjClassHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_CommonHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_MLSRuleIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_LevelDeclHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_SensitivityHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_CategoryHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeboundsIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_BooleanHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PortconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_NodeconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_NetifconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_IbpkeyconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_IbendportconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_InitialSIDIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsconOcontextIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_FSUseIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyCapability(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyCapabilityIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleAllowIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleTransitionIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Role(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyRule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleTransition(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleAllow(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_MLSRule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_SELinuxPolicy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_BaseTERule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_AVRule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_XpermSet(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_AVRuleXperm(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TERule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_FileNameTERule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalTERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_FileNameTERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_BaseType(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Type(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttribute(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttributeHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttributeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeOrAttributeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_User(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_UserHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_UserEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Devicetreecon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Iomemcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Ioportcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Pcidevicecon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Pirqcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_DevicetreeconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_IomemconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_IoportconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PcideviceconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PirqconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_defaults(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct__genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_1_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_2_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_3_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_4_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_5_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_6_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_7_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_8_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_9_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_10_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_11_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_12_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_13_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_14_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_15_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_16_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_17_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_18_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_19_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_20_defaults(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_21_terules(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_22_constraints(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_23_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_24_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_25_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_26_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_27_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_28_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_29_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_30_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_31_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_32_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_33_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_34_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_35_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
/* #### Code section: late_includes ### */
/* #### Code section: module_state ### */
/* SmallCodeConfig */
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif

typedef struct {
  PyObject *__pyx_d;
  PyObject *__pyx_b;
  PyObject *__pyx_cython_runtime;
  PyObject *__pyx_empty_tuple;
  PyObject *__pyx_empty_bytes;
  PyObject *__pyx_empty_unicode;
  PyTypeObject *__pyx_ptype_7cpython_4type_type;
  PyObject *__pyx_type_7setools_9policyrep_FileContexts;
  PyObject *__pyx_type_7setools_9policyrep_GenfsFiletype;
  PyObject *__pyx_type_7setools_9policyrep_GenfsconIterator;
  PyObject *__pyx_type_7setools_9policyrep_PolicyObject;
  PyObject *__pyx_type_7setools_9policyrep_Range;
  PyObject *__pyx_type_7setools_9policyrep_BaseMLSLevel;
  PyObject *__pyx_type_7setools_9policyrep_Level;
  PyObject *__pyx_type_7setools_9policyrep_LevelDecl;
  PyObject *__pyx_type_7setools_9policyrep_Default;
  PyObject *__pyx_type_7setools_9policyrep_DefaultRange;
  PyObject *__pyx_type_7setools_9policyrep_Context;
  PyObject *__pyx_type_7setools_9policyrep_ConstraintExprNode;
  PyObject *__pyx_type_7setools_9policyrep_ConstraintExpression;
  PyObject *__pyx_type_7setools_9policyrep_BaseConstraint;
  PyObject *__pyx_type_7setools_9policyrep_Validatetrans;
  PyObject *__pyx_type_7setools_9policyrep_Constraint;
  PyObject *__pyx_type_7setools_9policyrep_Bounds;
  PyObject *__pyx_type_7setools_9policyrep_ConditionalOperator;
  PyObject *__pyx_type_7setools_9policyrep_Conditional;
  PyObject *__pyx_type_7setools_9policyrep_PolicySymbol;
  PyObject *__pyx_type_7setools_9policyrep_ObjClass;
  PyObject *__pyx_type_7setools_9policyrep_Common;
  PyObject *__pyx_type_7setools_9policyrep_Sensitivity;
  PyObject *__pyx_type_7setools_9policyrep_Category;
  PyObject *__pyx_type_7setools_9policyrep_Boolean;
  PyObject *__pyx_type_7setools_9policyrep_Ocontext;
  PyObject *__pyx_type_7setools_9policyrep_Portcon;
  PyObject *__pyx_type_7setools_9policyrep_Nodecon;
  PyObject *__pyx_type_7setools_9policyrep_Netifcon;
  PyObject *__pyx_type_7setools_9policyrep_Ibpkeycon;
  PyObject *__pyx_type_7setools_9policyrep_Ibendportcon;
  PyObject *__pyx_type_7setools_9policyrep_InitialSID;
  PyObject *__pyx_type_7setools_9policyrep_Genfscon;
  PyObject *__pyx_type_7setools_9policyrep_FSUse;
  PyObject *__pyx_type_7setools_9policyrep_PolicyIterator;
  PyObject *__pyx_type_7setools_9policyrep_PermissionVectorIterator;
  PyObject *__pyx_type_7setools_9policyrep_ConstraintExprIterator;
  PyObject *__pyx_type_7setools_9policyrep_ConstraintIterator;
  PyObject *__pyx_type_7setools_9policyrep_ValidatetransIterator;
  PyObject *__pyx_type_7setools_9policyrep_ConditionalExprIterator;
  PyObject *__pyx_type_7setools_9policyrep_ConditionalIterator;
  PyObject *__pyx_type_7setools_9policyrep_EbitmapIterator;
  PyObject *__pyx_type_7setools_9policyrep_CategoryEbitmapIterator;
  PyObject *__pyx_type_7setools_9policyrep_HashtabIterator;
  PyObject *__pyx_type_7setools_9policyrep_ObjClassHashtabIterator;
  PyObject *__pyx_type_7setools_9policyrep_CommonHashtabIterator;
  PyObject *__pyx_type_7setools_9policyrep_MLSRuleIterator;
  PyObject *__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator;
  PyObject *__pyx_type_7setools_9policyrep_SensitivityHashtabIterator;
  PyObject *__pyx_type_7setools_9policyrep_CategoryHashtabIterator;
  PyObject *__pyx_type_7setools_9policyrep_TypeboundsIterator;
  PyObject *__pyx_type_7setools_9policyrep_BooleanHashtabIterator;
  PyObject *__pyx_type_7setools_9policyrep_OcontextIterator;
  PyObject *__pyx_type_7setools_9policyrep_PortconIterator;
  PyObject *__pyx_type_7setools_9policyrep_NodeconIterator;
  PyObject *__pyx_type_7setools_9policyrep_NetifconIterator;
  PyObject *__pyx_type_7setools_9policyrep_IbpkeyconIterator;
  PyObject *__pyx_type_7setools_9policyrep_IbendportconIterator;
  PyObject *__pyx_type_7setools_9policyrep_InitialSIDIterator;
  PyObject *__pyx_type_7setools_9policyrep_GenfsconOcontextIterator;
  PyObject *__pyx_type_7setools_9policyrep_FSUseIterator;
  PyObject *__pyx_type_7setools_9policyrep_PolicyCapability;
  PyObject *__pyx_type_7setools_9policyrep_PolicyCapabilityIterator;
  PyObject *__pyx_type_7setools_9policyrep_RoleAllowIterator;
  PyObject *__pyx_type_7setools_9policyrep_RoleTransitionIterator;
  PyObject *__pyx_type_7setools_9policyrep_Role;
  PyObject *__pyx_type_7setools_9policyrep_RoleHashtabIterator;
  PyObject *__pyx_type_7setools_9policyrep_RoleEbitmapIterator;
  PyObject *__pyx_type_7setools_9policyrep_PolicyRule;
  PyObject *__pyx_type_7setools_9policyrep_RoleTransition;
  PyObject *__pyx_type_7setools_9policyrep_RoleAllow;
  PyObject *__pyx_type_7setools_9policyrep_MLSRule;
  PyObject *__pyx_type_7setools_9policyrep_SELinuxPolicy;
  PyObject *__pyx_type_7setools_9policyrep_BaseTERule;
  PyObject *__pyx_type_7setools_9policyrep_AVRule;
  PyObject *__pyx_type_7setools_9policyrep_XpermSet;
  PyObject *__pyx_type_7setools_9policyrep_IoctlSet;
  PyObject *__pyx_type_7setools_9policyrep_AVRuleXperm;
  PyObject *__pyx_type_7setools_9policyrep_TERule;
  PyObject *__pyx_type_7setools_9policyrep_FileNameTERule;
  PyObject *__pyx_type_7setools_9policyrep_TERuleIterator;
  PyObject *__pyx_type_7setools_9policyrep_ConditionalTERuleIterator;
  PyObject *__pyx_type_7setools_9policyrep_FileNameTERuleIterator;
  PyObject *__pyx_type_7setools_9policyrep_BaseType;
  PyObject *__pyx_type_7setools_9policyrep_Type;
  PyObject *__pyx_type_7setools_9policyrep_TypeAttribute;
  PyObject *__pyx_type_7setools_9policyrep_TypeHashtabIterator;
  PyObject *__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator;
  PyObject *__pyx_type_7setools_9policyrep_TypeEbitmapIterator;
  PyObject *__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator;
  PyObject *__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator;
  PyObject *__pyx_type_7setools_9policyrep_User;
  PyObject *__pyx_type_7setools_9policyrep_UserHashtabIterator;
  PyObject *__pyx_type_7setools_9policyrep_UserEbitmapIterator;
  PyObject *__pyx_type_7setools_9policyrep_Devicetreecon;
  PyObject *__pyx_type_7setools_9policyrep_Iomemcon;
  PyObject *__pyx_type_7setools_9policyrep_Ioportcon;
  PyObject *__pyx_type_7setools_9policyrep_Pcidevicecon;
  PyObject *__pyx_type_7setools_9policyrep_Pirqcon;
  PyObject *__pyx_type_7setools_9policyrep_DevicetreeconIterator;
  PyObject *__pyx_type_7setools_9policyrep_IomemconIterator;
  PyObject *__pyx_type_7setools_9policyrep_IoportconIterator;
  PyObject *__pyx_type_7setools_9policyrep_PcideviceconIterator;
  PyObject *__pyx_type_7setools_9policyrep_PirqconIterator;
  PyObject *__pyx_type_7setools_9policyrep___pyx_defaults;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct__genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_2_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_5_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_8_expand;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_9_expand;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_12_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_13_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_14_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_16_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_18_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_20_defaults;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_21_terules;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_22_constraints;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_24_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_26_expand;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_28_expand;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_29_expand;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_30_expand;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_31_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_32_expand;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_33_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr;
  PyObject *__pyx_type_7setools_9policyrep___pyx_scope_struct_35_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_FileContexts;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_GenfsFiletype;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_GenfsconIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicyObject;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Range;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_BaseMLSLevel;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Level;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_LevelDecl;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Default;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_DefaultRange;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Context;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_ConstraintExprNode;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_ConstraintExpression;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_BaseConstraint;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Validatetrans;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Constraint;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Bounds;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_ConditionalOperator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Conditional;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicySymbol;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_ObjClass;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Common;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Sensitivity;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Category;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Boolean;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Ocontext;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Portcon;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Nodecon;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Netifcon;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Ibpkeycon;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Ibendportcon;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_InitialSID;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Genfscon;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_FSUse;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicyIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_PermissionVectorIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_ConstraintExprIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_ConstraintIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_ValidatetransIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_ConditionalExprIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_ConditionalIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_EbitmapIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_HashtabIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_CommonHashtabIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_MLSRuleIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeboundsIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_OcontextIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_PortconIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_NodeconIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_NetifconIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_IbpkeyconIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_IbendportconIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_InitialSIDIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_FSUseIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicyCapability;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleAllowIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleTransitionIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Role;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleHashtabIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicyRule;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleTransition;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleAllow;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_MLSRule;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_SELinuxPolicy;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_BaseTERule;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_AVRule;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_XpermSet;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_IoctlSet;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_AVRuleXperm;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_TERule;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_FileNameTERule;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_TERuleIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_BaseType;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Type;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeAttribute;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeHashtabIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_User;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_UserHashtabIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_UserEbitmapIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Devicetreecon;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Iomemcon;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Ioportcon;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Pcidevicecon;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_Pirqcon;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_DevicetreeconIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_IomemconIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_IoportconIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_PcideviceconIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep_PirqconIterator;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_defaults;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr;
  PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_get;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values;
  __Pyx_CachedCFunction __pyx_umethod_PyList_Type_pop;
  __Pyx_CachedCFunction __pyx_umethod_PySet_Type__update;
  PyObject *__pyx_k__15;
  PyObject *__pyx_tuple[4];
  PyObject *__pyx_codeobj_tab[473];
  PyObject *__pyx_string_tab[1472];
  PyObject *__pyx_number_tab[55];
/* #### Code section: module_state_contents ### */
/* CommonTypesMetaclass.module_state_decls */
PyTypeObject *__pyx_CommonTypesMetaclassType;

/* CachedMethodType.module_state_decls */
#if CYTHON_COMPILING_IN_LIMITED_API
PyObject *__Pyx_CachedMethodType;
#endif

/* CythonFunctionShared.module_state_decls */
PyTypeObject *__pyx_CyFunctionType;

/* IterNextPlain.module_state_decls */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
PyObject *__Pyx_GetBuiltinNext_LimitedAPI_cache;
#endif

/* Generator.module_state_decls */
PyTypeObject *__pyx_GeneratorType;


#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct__genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct__genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_1_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_1_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_2_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_2_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_3_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_3_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_4_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_4_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_5_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_5_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_6_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_6_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_7_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_7_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_8_expand[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_8_expand;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_9_expand[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_9_expand;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_10_expand[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_10_expand;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_11_expand[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_11_expand;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_12_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_12_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_13_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_13_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_14_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_14_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_15_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_15_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_16_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_16_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_17_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_17_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_18_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_18_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_19_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_19_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_20_defaults[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_20_defaults;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_21_terules[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_21_terules;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_22_constraints[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_22_constraints;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_23_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_23_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_24_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_24_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_25_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_25_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_26_expand[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_26_expand;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_27_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_27_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_28_expand[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_28_expand;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_29_expand[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_29_expand;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_30_expand[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_30_expand;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_31_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_31_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_32_expand[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_32_expand;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_33_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_33_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_34_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_34_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_35_genexpr[8];
int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_35_genexpr;
#endif
/* CodeObjectCache.module_state_decls */
struct __Pyx_CodeObjectCache __pyx_code_cache;

/* #### Code section: module_state_end ### */
} __pyx_mstatetype;

#if CYTHON_USE_MODULE_STATE
#ifdef __cplusplus
namespace {
extern struct PyModuleDef __pyx_moduledef;
} /* anonymous namespace */
#else
static struct PyModuleDef __pyx_moduledef;
#endif

#define __pyx_mstate_global (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&__pyx_moduledef)))

#define __pyx_m (__Pyx_State_FindModule(&__pyx_moduledef))
#else
static __pyx_mstatetype __pyx_mstate_global_static =
#ifdef __cplusplus
    {};
#else
    {0};
#endif
static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static;
#endif
/* #### Code section: constant_name_defines ### */
#define __pyx_kp_u_ __pyx_string_tab[0]
#define __pyx_kp_u_0 __pyx_string_tab[1]
#define __pyx_kp_u_04x __pyx_string_tab[2]
#define __pyx_kp_u_06x __pyx_string_tab[3]
#define __pyx_kp_u_0_6x __pyx_string_tab[4]
#define __pyx_kp_u_A_binary_policy_must_be_specifi __pyx_string_tab[5]
#define __pyx_kp_u_A_dictionary_with_a_weak_refere __pyx_string_tab[6]
#define __pyx_kp_u_A_portcon_protocol_type __pyx_string_tab[7]
#define __pyx_kp_u_A_range_of_IP_ports __pyx_string_tab[8]
#define __pyx_kp_u_A_range_of_Infiniband_partition __pyx_string_tab[9]
#define __pyx_kp_u_A_range_of_Xen_IO_memory_ranges __pyx_string_tab[10]
#define __pyx_kp_u_A_range_of_Xen_IO_ports __pyx_string_tab[11]
#define __pyx_kp_u_A_single_row_of_a_Conditional_ex __pyx_string_tab[12]
#define __pyx_kp_u_An_enumeration_of_MLS_rule_types __pyx_string_tab[13]
#define __pyx_kp_u_An_enumeration_of_RBAC_rule_type __pyx_string_tab[14]
#define __pyx_kp_u_At_least_one_of_user_role_type __pyx_string_tab[15]
#define __pyx_kp_u_Attempting_to_locate_current_run __pyx_string_tab[16]
#define __pyx_kp_u_Base_class_for_policy_enumerati __pyx_string_tab[17]
#define __pyx_kp_u_Binary_policy_path __pyx_string_tab[18]
#define __pyx_kp_u_Bitmap_overflow_bit __pyx_string_tab[19]
#define __pyx_kp_u_Creating_cat_val_to_struct __pyx_string_tab[20]
#define __pyx_kp_u_Creating_level_val_to_struct __pyx_string_tab[21]
#define __pyx_kp_u_Current_policy_path __pyx_string_tab[22]
#define __pyx_kp_u_Enumeration_of_bounds_rule_types __pyx_string_tab[23]
#define __pyx_kp_u_Enumeration_of_constraint_types __pyx_string_tab[24]
#define __pyx_kp_u_Enumeration_of_default_range_val __pyx_string_tab[25]
#define __pyx_kp_u_Enumeration_of_default_rule_type __pyx_string_tab[26]
#define __pyx_kp_u_Enumeration_of_default_values __pyx_string_tab[27]
#define __pyx_kp_u_Enumeration_of_file_types_in_Fil __pyx_string_tab[28]
#define __pyx_kp_u_Enumeration_of_fs_use__rule_type __pyx_string_tab[29]
#define __pyx_kp_u_Enumeration_of_handle_unknown_se __pyx_string_tab[30]
#define __pyx_kp_u_Enumeration_of_policy_targets __pyx_string_tab[31]
#define __pyx_kp_u_Enumeration_of_types_of_TE_rules __pyx_string_tab[32]
#define __pyx_kp_u_Error_inserting_into_hash_table __pyx_string_tab[33]
#define __pyx_kp_u_Extended_permission_information __pyx_string_tab[34]
#define __pyx_kp_u_Genfscon_g_fs_g_path_object_clas __pyx_string_tab[35]
#define __pyx_kp_u_Invalid_policy __pyx_string_tab[36]
#define __pyx_kp_u_Invalid_policy_Found_a_rule_with __pyx_string_tab[37]
#define __pyx_kp_u_Invalid_policy_Found_a_rule_with_2 __pyx_string_tab[38]
#define __pyx_kp_u_IoctlSet_is_deprecated_use_Xperm __pyx_string_tab[39]
#define __pyx_kp_u_Levels_cannot_be_compared_to_lev __pyx_string_tab[40]
#define __pyx_kp_u_List_str __pyx_string_tab[41]
#define __pyx_kp_u_Memory_address_must_be __pyx_string_tab[42]
#define __pyx_kp_u_Memory_address_must_be_2 __pyx_string_tab[43]
#define __pyx_kp_u_Negations_in_the_type_set_this_i __pyx_string_tab[44]
#define __pyx_kp_u_Nodecon_IP_Version __pyx_string_tab[45]
#define __pyx_kp_u_Nodecon_with_network __pyx_string_tab[46]
#define __pyx_kp_u_None __pyx_string_tab[47]
#define __pyx_kp_u_None_2 __pyx_string_tab[48]
#define __pyx_kp_u_None_None __pyx_string_tab[49]
#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[50]
#define __pyx_kp_u_ObjClass_str __pyx_string_tab[51]
#define __pyx_kp_u_Opening_SELinux_policy __pyx_string_tab[52]
#define __pyx_kp_u_Partition_keys_must_be __pyx_string_tab[53]
#define __pyx_kp_u_Partition_keys_must_be_2 __pyx_string_tab[54]
#define __pyx_kp_u_Port_numbers_must_be __pyx_string_tab[55]
#define __pyx_kp_u_Port_numbers_must_be_2 __pyx_string_tab[56]
#define __pyx_kp_u_Potential_policies __pyx_string_tab[57]
#define __pyx_kp_u_Rebuilding_attributes __pyx_string_tab[58]
#define __pyx_kp_u_SELinuxPolicy __pyx_string_tab[59]
#define __pyx_kp_u_SELinuxfs_exists __pyx_string_tab[60]
#define __pyx_kp_u_Sepol_version_range __pyx_string_tab[61]
#define __pyx_kp_u_Setting_permissive_flags_in_type __pyx_string_tab[62]
#define __pyx_kp_u_Successfully_opened_SELinux_poli __pyx_string_tab[63]
#define __pyx_kp_u_Synthesizing_missing_attributes __pyx_string_tab[64]
#define __pyx_kp_u_The_low_mem_addr_must_be_smaller __pyx_string_tab[65]
#define __pyx_kp_u_The_low_partition_key_must_be_th __pyx_string_tab[66]
#define __pyx_kp_u_The_low_port_must_be_smaller_tha __pyx_string_tab[67]
#define __pyx_kp_u_The_low_port_must_be_the_high_po __pyx_string_tab[68]
#define __pyx_kp_u_Unable_to_locate_an_SELinux_poli __pyx_string_tab[69]
#define __pyx_kp_u_Unknown_AV_rule_type_0x __pyx_string_tab[70]
#define __pyx_kp_u_Unknown_extended_permission __pyx_string_tab[71]
#define __pyx_kp_u_Unsupported_default_range_value __pyx_string_tab[72]
#define __pyx_kp_u_Unsupported_default_value __pyx_string_tab[73]
#define __pyx_kp_u__10 __pyx_string_tab[74]
#define __pyx_kp_u__11 __pyx_string_tab[75]
#define __pyx_kp_u__12 __pyx_string_tab[76]
#define __pyx_kp_u__13 __pyx_string_tab[77]
#define __pyx_kp_u__14 __pyx_string_tab[78]
#define __pyx_kp_u__16 __pyx_string_tab[79]
#define __pyx_kp_u__17 __pyx_string_tab[80]
#define __pyx_kp_u__18 __pyx_string_tab[81]
#define __pyx_kp_u__19 __pyx_string_tab[82]
#define __pyx_kp_u__2 __pyx_string_tab[83]
#define __pyx_kp_u__20 __pyx_string_tab[84]
#define __pyx_kp_u__21 __pyx_string_tab[85]
#define __pyx_kp_u__22 __pyx_string_tab[86]
#define __pyx_kp_u__23 __pyx_string_tab[87]
#define __pyx_kp_u__24 __pyx_string_tab[88]
#define __pyx_kp_u__25 __pyx_string_tab[89]
#define __pyx_kp_u__26 __pyx_string_tab[90]
#define __pyx_kp_u__27 __pyx_string_tab[91]
#define __pyx_kp_u__28 __pyx_string_tab[92]
#define __pyx_kp_u__29 __pyx_string_tab[93]
#define __pyx_kp_u__3 __pyx_string_tab[94]
#define __pyx_kp_u__30 __pyx_string_tab[95]
#define __pyx_kp_u__31 __pyx_string_tab[96]
#define __pyx_kp_u__32 __pyx_string_tab[97]
#define __pyx_kp_u__33 __pyx_string_tab[98]
#define __pyx_kp_u__34 __pyx_string_tab[99]
#define __pyx_kp_u__35 __pyx_string_tab[100]
#define __pyx_kp_u__37 __pyx_string_tab[101]
#define __pyx_kp_u__38 __pyx_string_tab[102]
#define __pyx_kp_u__39 __pyx_string_tab[103]
#define __pyx_kp_u__4 __pyx_string_tab[104]
#define __pyx_kp_u__40 __pyx_string_tab[105]
#define __pyx_kp_u__41 __pyx_string_tab[106]
#define __pyx_kp_u__5 __pyx_string_tab[107]
#define __pyx_kp_u__6 __pyx_string_tab[108]
#define __pyx_kp_u__7 __pyx_string_tab[109]
#define __pyx_kp_u__8 __pyx_string_tab[110]
#define __pyx_kp_u__9 __pyx_string_tab[111]
#define __pyx_kp_u_add_note __pyx_string_tab[112]
#define __pyx_kp_u_alias __pyx_string_tab[113]
#define __pyx_kp_u_alias_2 __pyx_string_tab[114]
#define __pyx_kp_u_and_is_not_in __pyx_string_tab[115]
#define __pyx_kp_u_attribute __pyx_string_tab[116]
#define __pyx_kp_u_b __pyx_string_tab[117]
#define __pyx_kp_u_bool __pyx_string_tab[118]
#define __pyx_kp_u_c_2 __pyx_string_tab[119]
#define __pyx_kp_u_category __pyx_string_tab[120]
#define __pyx_kp_u_class __pyx_string_tab[121]
#define __pyx_kp_u_common_0_1 __pyx_string_tab[122]
#define __pyx_kp_u_d __pyx_string_tab[123]
#define __pyx_kp_u_dataclasses_ClassVar_int __pyx_string_tab[124]
#define __pyx_kp_u_devicetreecon __pyx_string_tab[125]
#define __pyx_kp_u_dict_str_bool __pyx_string_tab[126]
#define __pyx_kp_u_disable __pyx_string_tab[127]
#define __pyx_kp_u_does_not_inherit_a_common __pyx_string_tab[128]
#define __pyx_kp_u_does_not_match __pyx_string_tab[129]
#define __pyx_kp_u_enable __pyx_string_tab[130]
#define __pyx_kp_u_f_ctx_is_invalid_Context_is_inco __pyx_string_tab[131]
#define __pyx_kp_u_gc __pyx_string_tab[132]
#define __pyx_kp_u_genfscon __pyx_string_tab[133]
#define __pyx_kp_u_genfscon_2 __pyx_string_tab[134]
#define __pyx_kp_u_has_host_bits_set_Analyses_may __pyx_string_tab[135]
#define __pyx_kp_u_ibendportcon __pyx_string_tab[136]
#define __pyx_kp_u_ibendportcon_2 __pyx_string_tab[137]
#define __pyx_kp_u_ibpkeycon __pyx_string_tab[138]
#define __pyx_kp_u_ibpkeycon_2 __pyx_string_tab[139]
#define __pyx_kp_u_inherits __pyx_string_tab[140]
#define __pyx_kp_u_iomemcon __pyx_string_tab[141]
#define __pyx_kp_u_ioportcon __pyx_string_tab[142]
#define __pyx_kp_u_is_an_attribute_thus_cannot_be __pyx_string_tab[143]
#define __pyx_kp_u_is_an_attribute_thus_does_not_h __pyx_string_tab[144]
#define __pyx_kp_u_is_an_attribute_thus_does_not_h_2 __pyx_string_tab[145]
#define __pyx_kp_u_is_invalid __pyx_string_tab[146]
#define __pyx_kp_u_is_invalid_Range __pyx_string_tab[147]
#define __pyx_kp_u_is_invalid_Role __pyx_string_tab[148]
#define __pyx_kp_u_is_invalid_Type __pyx_string_tab[149]
#define __pyx_kp_u_is_not __pyx_string_tab[150]
#define __pyx_kp_u_is_not_a_type __pyx_string_tab[151]
#define __pyx_kp_u_is_not_a_valid_Boolean __pyx_string_tab[152]
#define __pyx_kp_u_is_not_a_valid_category __pyx_string_tab[153]
#define __pyx_kp_u_is_not_a_valid_category_2 __pyx_string_tab[154]
#define __pyx_kp_u_is_not_a_valid_category_range __pyx_string_tab[155]
#define __pyx_kp_u_is_not_a_valid_class __pyx_string_tab[156]
#define __pyx_kp_u_is_not_a_valid_common __pyx_string_tab[157]
#define __pyx_kp_u_is_not_a_valid_level __pyx_string_tab[158]
#define __pyx_kp_u_is_not_a_valid_level_category __pyx_string_tab[159]
#define __pyx_kp_u_is_not_a_valid_level_level_pars __pyx_string_tab[160]
#define __pyx_kp_u_is_not_a_valid_range __pyx_string_tab[161]
#define __pyx_kp_u_is_not_a_valid_role __pyx_string_tab[162]
#define __pyx_kp_u_is_not_a_valid_sensitivity __pyx_string_tab[163]
#define __pyx_kp_u_is_not_a_valid_sensitivity_2 __pyx_string_tab[164]
#define __pyx_kp_u_is_not_a_valid_type __pyx_string_tab[165]
#define __pyx_kp_u_is_not_a_valid_type_attribute __pyx_string_tab[166]
#define __pyx_kp_u_is_not_a_valid_user __pyx_string_tab[167]
#define __pyx_kp_u_is_not_an_attribute __pyx_string_tab[168]
#define __pyx_kp_u_is_not_associated_to_role __pyx_string_tab[169]
#define __pyx_kp_u_is_not_associated_to_user __pyx_string_tab[170]
#define __pyx_kp_u_is_not_associated_with_sensitiv __pyx_string_tab[171]
#define __pyx_kp_u_is_not_dominated_by __pyx_string_tab[172]
#define __pyx_kp_u_isenabled __pyx_string_tab[173]
#define __pyx_kp_u_l __pyx_string_tab[174]
#define __pyx_kp_u_level __pyx_string_tab[175]
#define __pyx_kp_u_level_3 __pyx_string_tab[176]
#define __pyx_kp_u_netifcon __pyx_string_tab[177]
#define __pyx_kp_u_netifcon_2 __pyx_string_tab[178]
#define __pyx_kp_u_no_default___reduce___due_to_non __pyx_string_tab[179]
#define __pyx_kp_u_nodecon __pyx_string_tab[180]
#define __pyx_kp_u_nodecon_2 __pyx_string_tab[181]
#define __pyx_kp_u_not_in_user __pyx_string_tab[182]
#define __pyx_kp_u_or_in_the_type_set_this_is_not __pyx_string_tab[183]
#define __pyx_kp_u_or_sepolicy_Source_policies_are __pyx_string_tab[184]
#define __pyx_kp_u_p __pyx_string_tab[185]
#define __pyx_kp_u_pcidevicecon __pyx_string_tab[186]
#define __pyx_kp_u_pirqcon __pyx_string_tab[187]
#define __pyx_kp_u_policycap __pyx_string_tab[188]
#define __pyx_kp_u_portcon __pyx_string_tab[189]
#define __pyx_kp_u_portcon_2 __pyx_string_tab[190]
#define __pyx_kp_u_range_2 __pyx_string_tab[191]
#define __pyx_kp_u_role __pyx_string_tab[192]
#define __pyx_kp_u_roles_2 __pyx_string_tab[193]
#define __pyx_kp_u_rule_is_already_expanded __pyx_string_tab[194]
#define __pyx_kp_u_rules_do_not_have_a_default_typ __pyx_string_tab[195]
#define __pyx_kp_u_rules_do_not_have_a_permission __pyx_string_tab[196]
#define __pyx_kp_u_rules_do_not_have_an_extended_p __pyx_string_tab[197]
#define __pyx_kp_u_rules_do_not_have_file_names __pyx_string_tab[198]
#define __pyx_kp_u_rules_do_not_have_permissions __pyx_string_tab[199]
#define __pyx_kp_u_s __pyx_string_tab[200]
#define __pyx_kp_u_s_allowed_range __pyx_string_tab[201]
#define __pyx_kp_u_self_bmap_self_node_cannot_be_co __pyx_string_tab[202]
#define __pyx_kp_u_self_curr_self_datum_self_node_s __pyx_string_tab[203]
#define __pyx_kp_u_self_curr_self_head_cannot_be_co __pyx_string_tab[204]
#define __pyx_kp_u_self_curr_self_head_self_ocon_ca __pyx_string_tab[205]
#define __pyx_kp_u_self_curr_self_node_self_table_c __pyx_string_tab[206]
#define __pyx_kp_u_self_node_self_table_cannot_be_c __pyx_string_tab[207]
#define __pyx_kp_u_sensitivity __pyx_string_tab[208]
#define __pyx_kp_u_setools_exception __pyx_string_tab[209]
#define __pyx_kp_u_setools_policyrep_boolcond_pxi __pyx_string_tab[210]
#define __pyx_kp_u_setools_policyrep_bounds_pxi __pyx_string_tab[211]
#define __pyx_kp_u_setools_policyrep_constraint_pxi __pyx_string_tab[212]
#define __pyx_kp_u_setools_policyrep_context_pxi __pyx_string_tab[213]
#define __pyx_kp_u_setools_policyrep_default_pxi __pyx_string_tab[214]
#define __pyx_kp_u_setools_policyrep_filecontexts_p __pyx_string_tab[215]
#define __pyx_kp_u_setools_policyrep_fscontext_pxi __pyx_string_tab[216]
#define __pyx_kp_u_setools_policyrep_initsid_pxi __pyx_string_tab[217]
#define __pyx_kp_u_setools_policyrep_mls_pxi __pyx_string_tab[218]
#define __pyx_kp_u_setools_policyrep_mlsrule_pxi __pyx_string_tab[219]
#define __pyx_kp_u_setools_policyrep_netcontext_pxi __pyx_string_tab[220]
#define __pyx_kp_u_setools_policyrep_objclass_pxi __pyx_string_tab[221]
#define __pyx_kp_u_setools_policyrep_object_pxi __pyx_string_tab[222]
#define __pyx_kp_u_setools_policyrep_polcap_pxi __pyx_string_tab[223]
#define __pyx_kp_u_setools_policyrep_rbacrule_pxi __pyx_string_tab[224]
#define __pyx_kp_u_setools_policyrep_role_pxi __pyx_string_tab[225]
#define __pyx_kp_u_setools_policyrep_rule_pxi __pyx_string_tab[226]
#define __pyx_kp_u_setools_policyrep_selinuxpolicy __pyx_string_tab[227]
#define __pyx_kp_u_setools_policyrep_terule_pxi __pyx_string_tab[228]
#define __pyx_kp_u_setools_policyrep_typeattr_pxi __pyx_string_tab[229]
#define __pyx_kp_u_setools_policyrep_user_pxi __pyx_string_tab[230]
#define __pyx_kp_u_setools_policyrep_util_pxi __pyx_string_tab[231]
#define __pyx_kp_u_setools_policyrep_xencontext_pxi __pyx_string_tab[232]
#define __pyx_kp_u_sid __pyx_string_tab[233]
#define __pyx_kp_u_stringsource __pyx_string_tab[234]
#define __pyx_kp_u_type __pyx_string_tab[235]
#define __pyx_kp_u_types_2 __pyx_string_tab[236]
#define __pyx_kp_u_types_3 __pyx_string_tab[237]
#define __pyx_kp_u_user __pyx_string_tab[238]
#define __pyx_n_u_AVRule __pyx_string_tab[239]
#define __pyx_n_u_AVRuleXperm __pyx_string_tab[240]
#define __pyx_n_u_AVRuleXperm___reduce_cython __pyx_string_tab[241]
#define __pyx_n_u_AVRuleXperm___setstate_cython __pyx_string_tab[242]
#define __pyx_n_u_AVRuleXperm_expand __pyx_string_tab[243]
#define __pyx_n_u_AVRuleXperm_statement __pyx_string_tab[244]
#define __pyx_n_u_AVRule___reduce_cython __pyx_string_tab[245]
#define __pyx_n_u_AVRule___setstate_cython __pyx_string_tab[246]
#define __pyx_n_u_AVRule_derive_expanded __pyx_string_tab[247]
#define __pyx_n_u_AVRule_expand __pyx_string_tab[248]
#define __pyx_n_u_AVRule_factory_locals_genexpr __pyx_string_tab[249]
#define __pyx_n_u_AVRule_statement __pyx_string_tab[250]
#define __pyx_n_u_AnyConstraint __pyx_string_tab[251]
#define __pyx_n_u_AnyDefault __pyx_string_tab[252]
#define __pyx_n_u_AnyRBACRule __pyx_string_tab[253]
#define __pyx_n_u_AnyTERule __pyx_string_tab[254]
#define __pyx_n_u_BaseConstraint __pyx_string_tab[255]
#define __pyx_n_u_BaseConstraint___reduce_cython __pyx_string_tab[256]
#define __pyx_n_u_BaseConstraint___setstate_cython __pyx_string_tab[257]
#define __pyx_n_u_BaseMLSLevel __pyx_string_tab[258]
#define __pyx_n_u_BaseMLSLevel___reduce_cython __pyx_string_tab[259]
#define __pyx_n_u_BaseMLSLevel___setstate_cython __pyx_string_tab[260]
#define __pyx_n_u_BaseMLSLevel_categories __pyx_string_tab[261]
#define __pyx_n_u_BaseTERule __pyx_string_tab[262]
#define __pyx_n_u_BaseTERule___reduce_cython __pyx_string_tab[263]
#define __pyx_n_u_BaseTERule___setstate_cython __pyx_string_tab[264]
#define __pyx_n_u_BaseTERule_enabled __pyx_string_tab[265]
#define __pyx_n_u_BaseType __pyx_string_tab[266]
#define __pyx_n_u_BaseType___reduce_cython __pyx_string_tab[267]
#define __pyx_n_u_BaseType___setstate_cython __pyx_string_tab[268]
#define __pyx_n_u_BaseType_aliases __pyx_string_tab[269]
#define __pyx_n_u_BaseType_attributes __pyx_string_tab[270]
#define __pyx_n_u_BaseType_expand __pyx_string_tab[271]
#define __pyx_n_u_Boolean __pyx_string_tab[272]
#define __pyx_n_u_BooleanHashtabIterator __pyx_string_tab[273]
#define __pyx_n_u_BooleanHashtabIterator___reduce __pyx_string_tab[274]
#define __pyx_n_u_BooleanHashtabIterator___setstat __pyx_string_tab[275]
#define __pyx_n_u_Boolean___reduce_cython __pyx_string_tab[276]
#define __pyx_n_u_Boolean___setstate_cython __pyx_string_tab[277]
#define __pyx_n_u_Boolean_statement __pyx_string_tab[278]
#define __pyx_n_u_Bounds __pyx_string_tab[279]
#define __pyx_n_u_BoundsRuletype __pyx_string_tab[280]
#define __pyx_n_u_Bounds___reduce_cython __pyx_string_tab[281]
#define __pyx_n_u_Bounds___setstate_cython __pyx_string_tab[282]
#define __pyx_n_u_Bounds_statement __pyx_string_tab[283]
#define __pyx_n_u_Category __pyx_string_tab[284]
#define __pyx_n_u_CategoryEbitmapIterator __pyx_string_tab[285]
#define __pyx_n_u_CategoryEbitmapIterator___reduce __pyx_string_tab[286]
#define __pyx_n_u_CategoryEbitmapIterator___setsta __pyx_string_tab[287]
#define __pyx_n_u_CategoryHashtabIterator __pyx_string_tab[288]
#define __pyx_n_u_CategoryHashtabIterator___reduce __pyx_string_tab[289]
#define __pyx_n_u_CategoryHashtabIterator___setsta __pyx_string_tab[290]
#define __pyx_n_u_CategoryHashtabIterator_reset __pyx_string_tab[291]
#define __pyx_n_u_Category___reduce_cython __pyx_string_tab[292]
#define __pyx_n_u_Category___setstate_cython __pyx_string_tab[293]
#define __pyx_n_u_Category_aliases __pyx_string_tab[294]
#define __pyx_n_u_Category_statement __pyx_string_tab[295]
#define __pyx_n_u_Common __pyx_string_tab[296]
#define __pyx_n_u_CommonHashtabIterator __pyx_string_tab[297]
#define __pyx_n_u_CommonHashtabIterator___reduce_c __pyx_string_tab[298]
#define __pyx_n_u_CommonHashtabIterator___setstate __pyx_string_tab[299]
#define __pyx_n_u_Common___reduce_cython __pyx_string_tab[300]
#define __pyx_n_u_Common___setstate_cython __pyx_string_tab[301]
#define __pyx_n_u_Common_statement __pyx_string_tab[302]
#define __pyx_n_u_Conditional __pyx_string_tab[303]
#define __pyx_n_u_ConditionalExprIterator __pyx_string_tab[304]
#define __pyx_n_u_ConditionalExprIterator___reduce __pyx_string_tab[305]
#define __pyx_n_u_ConditionalExprIterator___setsta __pyx_string_tab[306]
#define __pyx_n_u_ConditionalExprIterator_reset __pyx_string_tab[307]
#define __pyx_n_u_ConditionalIterator __pyx_string_tab[308]
#define __pyx_n_u_ConditionalIterator___reduce_cyt __pyx_string_tab[309]
#define __pyx_n_u_ConditionalIterator___setstate_c __pyx_string_tab[310]
#define __pyx_n_u_ConditionalIterator_reset __pyx_string_tab[311]
#define __pyx_n_u_ConditionalOperator __pyx_string_tab[312]
#define __pyx_n_u_ConditionalOperator___reduce_cyt __pyx_string_tab[313]
#define __pyx_n_u_ConditionalOperator___setstate_c __pyx_string_tab[314]
#define __pyx_n_u_ConditionalOperator_lambda __pyx_string_tab[315]
#define __pyx_n_u_ConditionalOperator_statement __pyx_string_tab[316]
#define __pyx_n_u_ConditionalTERuleIterator __pyx_string_tab[317]
#define __pyx_n_u_ConditionalTERuleIterator___redu __pyx_string_tab[318]
#define __pyx_n_u_ConditionalTERuleIterator___sets __pyx_string_tab[319]
#define __pyx_n_u_ConditionalTERuleIterator_reset __pyx_string_tab[320]
#define __pyx_n_u_ConditionalTERuleIterator_rulety __pyx_string_tab[321]
#define __pyx_n_u_Conditional___reduce_cython __pyx_string_tab[322]
#define __pyx_n_u_Conditional___setstate_cython __pyx_string_tab[323]
#define __pyx_n_u_Conditional_evaluate __pyx_string_tab[324]
#define __pyx_n_u_Conditional_expression __pyx_string_tab[325]
#define __pyx_n_u_Conditional_false_rules __pyx_string_tab[326]
#define __pyx_n_u_Conditional_statement __pyx_string_tab[327]
#define __pyx_n_u_Conditional_true_rules __pyx_string_tab[328]
#define __pyx_n_u_Conditional_truth_table __pyx_string_tab[329]
#define __pyx_n_u_Constraint __pyx_string_tab[330]
#define __pyx_n_u_ConstraintExprIterator __pyx_string_tab[331]
#define __pyx_n_u_ConstraintExprIterator___reduce __pyx_string_tab[332]
#define __pyx_n_u_ConstraintExprIterator___setstat __pyx_string_tab[333]
#define __pyx_n_u_ConstraintExprIterator_reset __pyx_string_tab[334]
#define __pyx_n_u_ConstraintExprNode __pyx_string_tab[335]
#define __pyx_n_u_ConstraintExprNode___reduce_cyth __pyx_string_tab[336]
#define __pyx_n_u_ConstraintExprNode___setstate_cy __pyx_string_tab[337]
#define __pyx_n_u_ConstraintExprNode_factory_local __pyx_string_tab[338]
#define __pyx_n_u_ConstraintExprNode_statement __pyx_string_tab[339]
#define __pyx_n_u_ConstraintExpression __pyx_string_tab[340]
#define __pyx_n_u_ConstraintExpression___reduce_cy __pyx_string_tab[341]
#define __pyx_n_u_ConstraintExpression___setstate __pyx_string_tab[342]
#define __pyx_n_u_ConstraintExpression_infix __pyx_string_tab[343]
#define __pyx_n_u_ConstraintExpression_statement __pyx_string_tab[344]
#define __pyx_n_u_ConstraintIterator __pyx_string_tab[345]
#define __pyx_n_u_ConstraintIterator___reduce_cyth __pyx_string_tab[346]
#define __pyx_n_u_ConstraintIterator___setstate_cy __pyx_string_tab[347]
#define __pyx_n_u_ConstraintIterator_reset __pyx_string_tab[348]
#define __pyx_n_u_ConstraintRuletype __pyx_string_tab[349]
#define __pyx_n_u_ConstraintUseError __pyx_string_tab[350]
#define __pyx_n_u_Constraint___reduce_cython __pyx_string_tab[351]
#define __pyx_n_u_Constraint___setstate_cython __pyx_string_tab[352]
#define __pyx_n_u_Constraint_statement __pyx_string_tab[353]
#define __pyx_n_u_Context __pyx_string_tab[354]
#define __pyx_n_u_Context___reduce_cython __pyx_string_tab[355]
#define __pyx_n_u_Context___setstate_cython __pyx_string_tab[356]
#define __pyx_n_u_Context_statement __pyx_string_tab[357]
#define __pyx_n_u_Counter __pyx_string_tab[358]
#define __pyx_n_u_Default __pyx_string_tab[359]
#define __pyx_n_u_DefaultRange __pyx_string_tab[360]
#define __pyx_n_u_DefaultRangeValue __pyx_string_tab[361]
#define __pyx_n_u_DefaultRangeValue_from_default_r __pyx_string_tab[362]
#define __pyx_n_u_DefaultRange___reduce_cython __pyx_string_tab[363]
#define __pyx_n_u_DefaultRange___setstate_cython __pyx_string_tab[364]
#define __pyx_n_u_DefaultRange_statement __pyx_string_tab[365]
#define __pyx_n_u_DefaultRuletype __pyx_string_tab[366]
#define __pyx_n_u_DefaultValue __pyx_string_tab[367]
#define __pyx_n_u_DefaultValue_from_default_range __pyx_string_tab[368]
#define __pyx_n_u_Default___reduce_cython __pyx_string_tab[369]
#define __pyx_n_u_Default___setstate_cython __pyx_string_tab[370]
#define __pyx_n_u_Default_statement __pyx_string_tab[371]
#define __pyx_n_u_Devicetreecon __pyx_string_tab[372]
#define __pyx_n_u_DevicetreeconIterator __pyx_string_tab[373]
#define __pyx_n_u_DevicetreeconIterator___reduce_c __pyx_string_tab[374]
#define __pyx_n_u_DevicetreeconIterator___setstate __pyx_string_tab[375]
#define __pyx_n_u_Devicetreecon___reduce_cython __pyx_string_tab[376]
#define __pyx_n_u_Devicetreecon___setstate_cython __pyx_string_tab[377]
#define __pyx_n_u_Devicetreecon_statement __pyx_string_tab[378]
#define __pyx_n_u_EbitmapIterator __pyx_string_tab[379]
#define __pyx_n_u_EbitmapIterator___reduce_cython __pyx_string_tab[380]
#define __pyx_n_u_EbitmapIterator___setstate_cytho __pyx_string_tab[381]
#define __pyx_n_u_EbitmapIterator_reset __pyx_string_tab[382]
#define __pyx_n_u_Enum __pyx_string_tab[383]
#define __pyx_n_u_FSUse __pyx_string_tab[384]
#define __pyx_n_u_FSUseIterator __pyx_string_tab[385]
#define __pyx_n_u_FSUseIterator___reduce_cython __pyx_string_tab[386]
#define __pyx_n_u_FSUseIterator___setstate_cython __pyx_string_tab[387]
#define __pyx_n_u_FSUseRuletype __pyx_string_tab[388]
#define __pyx_n_u_FSUse___reduce_cython __pyx_string_tab[389]
#define __pyx_n_u_FSUse___setstate_cython __pyx_string_tab[390]
#define __pyx_n_u_FSUse_statement __pyx_string_tab[391]
#define __pyx_n_u_False __pyx_string_tab[392]
#define __pyx_n_u_FileContexts __pyx_string_tab[393]
#define __pyx_n_u_FileContextsFiletype __pyx_string_tab[394]
#define __pyx_n_u_FileContexts___reduce_cython __pyx_string_tab[395]
#define __pyx_n_u_FileContexts___setstate_cython __pyx_string_tab[396]
#define __pyx_n_u_FileContexts_lookup __pyx_string_tab[397]
#define __pyx_n_u_FileNameTERule __pyx_string_tab[398]
#define __pyx_n_u_FileNameTERuleIterator __pyx_string_tab[399]
#define __pyx_n_u_FileNameTERuleIterator___reduce __pyx_string_tab[400]
#define __pyx_n_u_FileNameTERuleIterator___setstat __pyx_string_tab[401]
#define __pyx_n_u_FileNameTERuleIterator__next_sty __pyx_string_tab[402]
#define __pyx_n_u_FileNameTERuleIterator_reset __pyx_string_tab[403]
#define __pyx_n_u_FileNameTERule___reduce_cython __pyx_string_tab[404]
#define __pyx_n_u_FileNameTERule___setstate_cython __pyx_string_tab[405]
#define __pyx_n_u_FileNameTERule_expand __pyx_string_tab[406]
#define __pyx_n_u_FileNameTERule_statement __pyx_string_tab[407]
#define __pyx_n_u_GenfsFiletype __pyx_string_tab[408]
#define __pyx_n_u_GenfsFiletype___reduce_cython __pyx_string_tab[409]
#define __pyx_n_u_GenfsFiletype___setstate_cython __pyx_string_tab[410]
#define __pyx_n_u_GenfsFiletype_from_class __pyx_string_tab[411]
#define __pyx_n_u_Genfscon __pyx_string_tab[412]
#define __pyx_n_u_GenfsconIterator __pyx_string_tab[413]
#define __pyx_n_u_GenfsconIterator___reduce_cython __pyx_string_tab[414]
#define __pyx_n_u_GenfsconIterator___setstate_cyth __pyx_string_tab[415]
#define __pyx_n_u_GenfsconOcontextIterator __pyx_string_tab[416]
#define __pyx_n_u_GenfsconOcontextIterator___reduc __pyx_string_tab[417]
#define __pyx_n_u_GenfsconOcontextIterator___setst __pyx_string_tab[418]
#define __pyx_n_u_Genfscon___reduce_cython __pyx_string_tab[419]
#define __pyx_n_u_Genfscon___setstate_cython __pyx_string_tab[420]
#define __pyx_n_u_Genfscon_statement __pyx_string_tab[421]
#define __pyx_n_u_HandleUnknown __pyx_string_tab[422]
#define __pyx_n_u_HashtabIterator __pyx_string_tab[423]
#define __pyx_n_u_HashtabIterator___reduce_cython __pyx_string_tab[424]
#define __pyx_n_u_HashtabIterator___setstate_cytho __pyx_string_tab[425]
#define __pyx_n_u_HashtabIterator_reset __pyx_string_tab[426]
#define __pyx_n_u_IPv6Address __pyx_string_tab[427]
#define __pyx_n_u_Ibendportcon __pyx_string_tab[428]
#define __pyx_n_u_IbendportconIterator __pyx_string_tab[429]
#define __pyx_n_u_IbendportconIterator___reduce_cy __pyx_string_tab[430]
#define __pyx_n_u_IbendportconIterator___setstate __pyx_string_tab[431]
#define __pyx_n_u_Ibendportcon___reduce_cython __pyx_string_tab[432]
#define __pyx_n_u_Ibendportcon___setstate_cython __pyx_string_tab[433]
#define __pyx_n_u_Ibendportcon_statement __pyx_string_tab[434]
#define __pyx_n_u_Ibpkeycon __pyx_string_tab[435]
#define __pyx_n_u_IbpkeyconIterator __pyx_string_tab[436]
#define __pyx_n_u_IbpkeyconIterator___reduce_cytho __pyx_string_tab[437]
#define __pyx_n_u_IbpkeyconIterator___setstate_cyt __pyx_string_tab[438]
#define __pyx_n_u_IbpkeyconRange __pyx_string_tab[439]
#define __pyx_n_u_IbpkeyconRange___post_init __pyx_string_tab[440]
#define __pyx_n_u_IbpkeyconRange___str __pyx_string_tab[441]
#define __pyx_n_u_Ibpkeycon___reduce_cython __pyx_string_tab[442]
#define __pyx_n_u_Ibpkeycon___setstate_cython __pyx_string_tab[443]
#define __pyx_n_u_Ibpkeycon_statement __pyx_string_tab[444]
#define __pyx_n_u_InitialSID __pyx_string_tab[445]
#define __pyx_n_u_InitialSIDIterator __pyx_string_tab[446]
#define __pyx_n_u_InitialSIDIterator___reduce_cyth __pyx_string_tab[447]
#define __pyx_n_u_InitialSIDIterator___setstate_cy __pyx_string_tab[448]
#define __pyx_n_u_InitialSID___reduce_cython __pyx_string_tab[449]
#define __pyx_n_u_InitialSID___setstate_cython __pyx_string_tab[450]
#define __pyx_n_u_InitialSID_statement __pyx_string_tab[451]
#define __pyx_n_u_InvalidBoolean __pyx_string_tab[452]
#define __pyx_n_u_InvalidCategory __pyx_string_tab[453]
#define __pyx_n_u_InvalidClass __pyx_string_tab[454]
#define __pyx_n_u_InvalidCommon __pyx_string_tab[455]
#define __pyx_n_u_InvalidContext __pyx_string_tab[456]
#define __pyx_n_u_InvalidLevel __pyx_string_tab[457]
#define __pyx_n_u_InvalidPolicy __pyx_string_tab[458]
#define __pyx_n_u_InvalidRange __pyx_string_tab[459]
#define __pyx_n_u_InvalidRole __pyx_string_tab[460]
#define __pyx_n_u_InvalidSensitivity __pyx_string_tab[461]
#define __pyx_n_u_InvalidSymbol __pyx_string_tab[462]
#define __pyx_n_u_InvalidType __pyx_string_tab[463]
#define __pyx_n_u_InvalidUser __pyx_string_tab[464]
#define __pyx_n_u_IoctlSet __pyx_string_tab[465]
#define __pyx_n_u_IoctlSet___reduce_cython __pyx_string_tab[466]
#define __pyx_n_u_IoctlSet___setstate_cython __pyx_string_tab[467]
#define __pyx_n_u_Iomemcon __pyx_string_tab[468]
#define __pyx_n_u_IomemconIterator __pyx_string_tab[469]
#define __pyx_n_u_IomemconIterator___reduce_cython __pyx_string_tab[470]
#define __pyx_n_u_IomemconIterator___setstate_cyth __pyx_string_tab[471]
#define __pyx_n_u_IomemconRange __pyx_string_tab[472]
#define __pyx_n_u_IomemconRange___post_init __pyx_string_tab[473]
#define __pyx_n_u_IomemconRange___str __pyx_string_tab[474]
#define __pyx_n_u_Iomemcon___reduce_cython __pyx_string_tab[475]
#define __pyx_n_u_Iomemcon___setstate_cython __pyx_string_tab[476]
#define __pyx_n_u_Iomemcon_statement __pyx_string_tab[477]
#define __pyx_n_u_Ioportcon __pyx_string_tab[478]
#define __pyx_n_u_IoportconIterator __pyx_string_tab[479]
#define __pyx_n_u_IoportconIterator___reduce_cytho __pyx_string_tab[480]
#define __pyx_n_u_IoportconIterator___setstate_cyt __pyx_string_tab[481]
#define __pyx_n_u_IoportconRange __pyx_string_tab[482]
#define __pyx_n_u_IoportconRange___post_init __pyx_string_tab[483]
#define __pyx_n_u_IoportconRange___str __pyx_string_tab[484]
#define __pyx_n_u_Ioportcon___reduce_cython __pyx_string_tab[485]
#define __pyx_n_u_Ioportcon___setstate_cython __pyx_string_tab[486]
#define __pyx_n_u_Ioportcon_statement __pyx_string_tab[487]
#define __pyx_n_u_Level __pyx_string_tab[488]
#define __pyx_n_u_LevelDecl __pyx_string_tab[489]
#define __pyx_n_u_LevelDeclHashtabIterator __pyx_string_tab[490]
#define __pyx_n_u_LevelDeclHashtabIterator___reduc __pyx_string_tab[491]
#define __pyx_n_u_LevelDeclHashtabIterator___setst __pyx_string_tab[492]
#define __pyx_n_u_LevelDeclHashtabIterator_reset __pyx_string_tab[493]
#define __pyx_n_u_LevelDecl___reduce_cython __pyx_string_tab[494]
#define __pyx_n_u_LevelDecl___setstate_cython __pyx_string_tab[495]
#define __pyx_n_u_LevelDecl_statement __pyx_string_tab[496]
#define __pyx_n_u_Level___reduce_cython __pyx_string_tab[497]
#define __pyx_n_u_Level___setstate_cython __pyx_string_tab[498]
#define __pyx_n_u_Level_factory_from_string_locals __pyx_string_tab[499]
#define __pyx_n_u_Level_statement __pyx_string_tab[500]
#define __pyx_n_u_LowLevelPolicyError __pyx_string_tab[501]
#define __pyx_n_u_MAX __pyx_string_tab[502]
#define __pyx_n_u_MIN __pyx_string_tab[503]
#define __pyx_n_u_MLSDisabled __pyx_string_tab[504]
#define __pyx_n_u_MLSRule __pyx_string_tab[505]
#define __pyx_n_u_MLSRuleIterator __pyx_string_tab[506]
#define __pyx_n_u_MLSRuleIterator___reduce_cython __pyx_string_tab[507]
#define __pyx_n_u_MLSRuleIterator___setstate_cytho __pyx_string_tab[508]
#define __pyx_n_u_MLSRule___reduce_cython __pyx_string_tab[509]
#define __pyx_n_u_MLSRule___setstate_cython __pyx_string_tab[510]
#define __pyx_n_u_MLSRule_expand __pyx_string_tab[511]
#define __pyx_n_u_MLSRule_statement __pyx_string_tab[512]
#define __pyx_n_u_MLSRuletype __pyx_string_tab[513]
#define __pyx_n_u_Netifcon __pyx_string_tab[514]
#define __pyx_n_u_NetifconIterator __pyx_string_tab[515]
#define __pyx_n_u_NetifconIterator___reduce_cython __pyx_string_tab[516]
#define __pyx_n_u_NetifconIterator___setstate_cyth __pyx_string_tab[517]
#define __pyx_n_u_Netifcon___reduce_cython __pyx_string_tab[518]
#define __pyx_n_u_Netifcon___setstate_cython __pyx_string_tab[519]
#define __pyx_n_u_Netifcon_statement __pyx_string_tab[520]
#define __pyx_n_u_NoCommon __pyx_string_tab[521]
#define __pyx_n_u_NoFileContextsMatch __pyx_string_tab[522]
#define __pyx_n_u_NoStatement __pyx_string_tab[523]
#define __pyx_n_u_Nodecon __pyx_string_tab[524]
#define __pyx_n_u_NodeconIPVersion __pyx_string_tab[525]
#define __pyx_n_u_NodeconIterator __pyx_string_tab[526]
#define __pyx_n_u_NodeconIterator___reduce_cython __pyx_string_tab[527]
#define __pyx_n_u_NodeconIterator___setstate_cytho __pyx_string_tab[528]
#define __pyx_n_u_Nodecon___reduce_cython __pyx_string_tab[529]
#define __pyx_n_u_Nodecon___setstate_cython __pyx_string_tab[530]
#define __pyx_n_u_Nodecon_statement __pyx_string_tab[531]
#define __pyx_n_u_ObjClass __pyx_string_tab[532]
#define __pyx_n_u_ObjClassHashtabIterator __pyx_string_tab[533]
#define __pyx_n_u_ObjClassHashtabIterator___reduce __pyx_string_tab[534]
#define __pyx_n_u_ObjClassHashtabIterator___setsta __pyx_string_tab[535]
#define __pyx_n_u_ObjClass___reduce_cython __pyx_string_tab[536]
#define __pyx_n_u_ObjClass___setstate_cython __pyx_string_tab[537]
#define __pyx_n_u_ObjClass_constraints __pyx_string_tab[538]
#define __pyx_n_u_ObjClass_defaults __pyx_string_tab[539]
#define __pyx_n_u_ObjClass_statement __pyx_string_tab[540]
#define __pyx_n_u_ObjClass_validatetrans __pyx_string_tab[541]
#define __pyx_n_u_Ocontext __pyx_string_tab[542]
#define __pyx_n_u_OcontextIterator __pyx_string_tab[543]
#define __pyx_n_u_OcontextIterator___reduce_cython __pyx_string_tab[544]
#define __pyx_n_u_OcontextIterator___setstate_cyth __pyx_string_tab[545]
#define __pyx_n_u_Ocontext___reduce_cython __pyx_string_tab[546]
#define __pyx_n_u_Ocontext___setstate_cython __pyx_string_tab[547]
#define __pyx_n_u_Pcidevicecon __pyx_string_tab[548]
#define __pyx_n_u_PcideviceconIterator __pyx_string_tab[549]
#define __pyx_n_u_PcideviceconIterator___reduce_cy __pyx_string_tab[550]
#define __pyx_n_u_PcideviceconIterator___setstate __pyx_string_tab[551]
#define __pyx_n_u_Pcidevicecon___reduce_cython __pyx_string_tab[552]
#define __pyx_n_u_Pcidevicecon___setstate_cython __pyx_string_tab[553]
#define __pyx_n_u_Pcidevicecon_statement __pyx_string_tab[554]
#define __pyx_n_u_PermissionVectorIterator __pyx_string_tab[555]
#define __pyx_n_u_PermissionVectorIterator___reduc __pyx_string_tab[556]
#define __pyx_n_u_PermissionVectorIterator___setst __pyx_string_tab[557]
#define __pyx_n_u_PermissionVectorIterator_reset __pyx_string_tab[558]
#define __pyx_n_u_Pirqcon __pyx_string_tab[559]
#define __pyx_n_u_PirqconIterator __pyx_string_tab[560]
#define __pyx_n_u_PirqconIterator___reduce_cython __pyx_string_tab[561]
#define __pyx_n_u_PirqconIterator___setstate_cytho __pyx_string_tab[562]
#define __pyx_n_u_Pirqcon___reduce_cython __pyx_string_tab[563]
#define __pyx_n_u_Pirqcon___setstate_cython __pyx_string_tab[564]
#define __pyx_n_u_Pirqcon_statement __pyx_string_tab[565]
#define __pyx_n_u_PolicyCapability __pyx_string_tab[566]
#define __pyx_n_u_PolicyCapabilityIterator __pyx_string_tab[567]
#define __pyx_n_u_PolicyCapabilityIterator___reduc __pyx_string_tab[568]
#define __pyx_n_u_PolicyCapabilityIterator___setst __pyx_string_tab[569]
#define __pyx_n_u_PolicyCapability___reduce_cython __pyx_string_tab[570]
#define __pyx_n_u_PolicyCapability___setstate_cyth __pyx_string_tab[571]
#define __pyx_n_u_PolicyCapability_statement __pyx_string_tab[572]
#define __pyx_n_u_PolicyEnum __pyx_string_tab[573]
#define __pyx_n_u_PolicyEnum___eq __pyx_string_tab[574]
#define __pyx_n_u_PolicyEnum___format __pyx_string_tab[575]
#define __pyx_n_u_PolicyEnum___hash __pyx_string_tab[576]
#define __pyx_n_u_PolicyEnum___str __pyx_string_tab[577]
#define __pyx_n_u_PolicyEnum_lookup __pyx_string_tab[578]
#define __pyx_n_u_PolicyIterator __pyx_string_tab[579]
#define __pyx_n_u_PolicyIterator___reduce_cython __pyx_string_tab[580]
#define __pyx_n_u_PolicyIterator___setstate_cython __pyx_string_tab[581]
#define __pyx_n_u_PolicyIterator_reset __pyx_string_tab[582]
#define __pyx_n_u_PolicyObject __pyx_string_tab[583]
#define __pyx_n_u_PolicyObject___copy __pyx_string_tab[584]
#define __pyx_n_u_PolicyObject___deepcopy __pyx_string_tab[585]
#define __pyx_n_u_PolicyObject___reduce_cython __pyx_string_tab[586]
#define __pyx_n_u_PolicyObject___setstate_cython __pyx_string_tab[587]
#define __pyx_n_u_PolicyObject_statement __pyx_string_tab[588]
#define __pyx_n_u_PolicyRule __pyx_string_tab[589]
#define __pyx_n_u_PolicyRule___reduce_cython __pyx_string_tab[590]
#define __pyx_n_u_PolicyRule___setstate_cython __pyx_string_tab[591]
#define __pyx_n_u_PolicyRule_enabled __pyx_string_tab[592]
#define __pyx_n_u_PolicyRule_expand __pyx_string_tab[593]
#define __pyx_n_u_PolicySymbol __pyx_string_tab[594]
#define __pyx_n_u_PolicySymbol___reduce_cython __pyx_string_tab[595]
#define __pyx_n_u_PolicySymbol___setstate_cython __pyx_string_tab[596]
#define __pyx_n_u_PolicySymbol_expand __pyx_string_tab[597]
#define __pyx_n_u_PolicyTarget __pyx_string_tab[598]
#define __pyx_n_u_Portcon __pyx_string_tab[599]
#define __pyx_n_u_PortconIterator __pyx_string_tab[600]
#define __pyx_n_u_PortconIterator___reduce_cython __pyx_string_tab[601]
#define __pyx_n_u_PortconIterator___setstate_cytho __pyx_string_tab[602]
#define __pyx_n_u_PortconProtocol __pyx_string_tab[603]
#define __pyx_n_u_PortconRange __pyx_string_tab[604]
#define __pyx_n_u_PortconRange___post_init __pyx_string_tab[605]
#define __pyx_n_u_PortconRange___str __pyx_string_tab[606]
#define __pyx_n_u_Portcon___reduce_cython __pyx_string_tab[607]
#define __pyx_n_u_Portcon___setstate_cython __pyx_string_tab[608]
#define __pyx_n_u_Portcon_statement __pyx_string_tab[609]
#define __pyx_n_u_PyErr_NoMemory __pyx_string_tab[610]
#define __pyx_n_u_PyErr_SetFromErrno __pyx_string_tab[611]
#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[612]
#define __pyx_n_u_RBACRuletype __pyx_string_tab[613]
#define __pyx_n_u_Range __pyx_string_tab[614]
#define __pyx_n_u_Range___reduce_cython __pyx_string_tab[615]
#define __pyx_n_u_Range___setstate_cython __pyx_string_tab[616]
#define __pyx_n_u_Range_dom __pyx_string_tab[617]
#define __pyx_n_u_Range_domby __pyx_string_tab[618]
#define __pyx_n_u_Range_statement __pyx_string_tab[619]
#define __pyx_n_u_Role __pyx_string_tab[620]
#define __pyx_n_u_RoleAllow __pyx_string_tab[621]
#define __pyx_n_u_RoleAllowIterator __pyx_string_tab[622]
#define __pyx_n_u_RoleAllowIterator___reduce_cytho __pyx_string_tab[623]
#define __pyx_n_u_RoleAllowIterator___setstate_cyt __pyx_string_tab[624]
#define __pyx_n_u_RoleAllowIterator_reset __pyx_string_tab[625]
#define __pyx_n_u_RoleAllow___reduce_cython __pyx_string_tab[626]
#define __pyx_n_u_RoleAllow___setstate_cython __pyx_string_tab[627]
#define __pyx_n_u_RoleAllow_expand __pyx_string_tab[628]
#define __pyx_n_u_RoleAllow_statement __pyx_string_tab[629]
#define __pyx_n_u_RoleEbitmapIterator __pyx_string_tab[630]
#define __pyx_n_u_RoleEbitmapIterator___reduce_cyt __pyx_string_tab[631]
#define __pyx_n_u_RoleEbitmapIterator___setstate_c __pyx_string_tab[632]
#define __pyx_n_u_RoleHashtabIterator __pyx_string_tab[633]
#define __pyx_n_u_RoleHashtabIterator___reduce_cyt __pyx_string_tab[634]
#define __pyx_n_u_RoleHashtabIterator___setstate_c __pyx_string_tab[635]
#define __pyx_n_u_RoleTransition __pyx_string_tab[636]
#define __pyx_n_u_RoleTransitionIterator __pyx_string_tab[637]
#define __pyx_n_u_RoleTransitionIterator___reduce __pyx_string_tab[638]
#define __pyx_n_u_RoleTransitionIterator___setstat __pyx_string_tab[639]
#define __pyx_n_u_RoleTransitionIterator_reset __pyx_string_tab[640]
#define __pyx_n_u_RoleTransition___reduce_cython __pyx_string_tab[641]
#define __pyx_n_u_RoleTransition___setstate_cython __pyx_string_tab[642]
#define __pyx_n_u_RoleTransition_expand __pyx_string_tab[643]
#define __pyx_n_u_RoleTransition_statement __pyx_string_tab[644]
#define __pyx_n_u_Role___reduce_cython __pyx_string_tab[645]
#define __pyx_n_u_Role___setstate_cython __pyx_string_tab[646]
#define __pyx_n_u_Role_statement __pyx_string_tab[647]
#define __pyx_n_u_Role_types __pyx_string_tab[648]
#define __pyx_n_u_RuleNotConditional __pyx_string_tab[649]
#define __pyx_n_u_RuleUseError __pyx_string_tab[650]
#define __pyx_n_u_SELINUX_SIDNAMES __pyx_string_tab[651]
#define __pyx_n_u_SELinuxPolicy_2 __pyx_string_tab[652]
#define __pyx_n_u_SELinuxPolicy___copy __pyx_string_tab[653]
#define __pyx_n_u_SELinuxPolicy___deepcopy __pyx_string_tab[654]
#define __pyx_n_u_SELinuxPolicy___get___locals_gen __pyx_string_tab[655]
#define __pyx_n_u_SELinuxPolicy___reduce_cython __pyx_string_tab[656]
#define __pyx_n_u_SELinuxPolicy___setstate_cython __pyx_string_tab[657]
#define __pyx_n_u_SELinuxPolicy__cache_constraint __pyx_string_tab[658]
#define __pyx_n_u_SELinuxPolicy_bools __pyx_string_tab[659]
#define __pyx_n_u_SELinuxPolicy_bounds __pyx_string_tab[660]
#define __pyx_n_u_SELinuxPolicy_categories __pyx_string_tab[661]
#define __pyx_n_u_SELinuxPolicy_classes __pyx_string_tab[662]
#define __pyx_n_u_SELinuxPolicy_commons __pyx_string_tab[663]
#define __pyx_n_u_SELinuxPolicy_conditionals __pyx_string_tab[664]
#define __pyx_n_u_SELinuxPolicy_constraints __pyx_string_tab[665]
#define __pyx_n_u_SELinuxPolicy_defaults __pyx_string_tab[666]
#define __pyx_n_u_SELinuxPolicy_devicetreecons __pyx_string_tab[667]
#define __pyx_n_u_SELinuxPolicy_fs_uses __pyx_string_tab[668]
#define __pyx_n_u_SELinuxPolicy_genfscons __pyx_string_tab[669]
#define __pyx_n_u_SELinuxPolicy_ibendportcons __pyx_string_tab[670]
#define __pyx_n_u_SELinuxPolicy_ibpkeycons __pyx_string_tab[671]
#define __pyx_n_u_SELinuxPolicy_initialsids __pyx_string_tab[672]
#define __pyx_n_u_SELinuxPolicy_iomemcons __pyx_string_tab[673]
#define __pyx_n_u_SELinuxPolicy_ioportcons __pyx_string_tab[674]
#define __pyx_n_u_SELinuxPolicy_levels __pyx_string_tab[675]
#define __pyx_n_u_SELinuxPolicy_lookup_boolean __pyx_string_tab[676]
#define __pyx_n_u_SELinuxPolicy_lookup_category __pyx_string_tab[677]
#define __pyx_n_u_SELinuxPolicy_lookup_class __pyx_string_tab[678]
#define __pyx_n_u_SELinuxPolicy_lookup_common __pyx_string_tab[679]
#define __pyx_n_u_SELinuxPolicy_lookup_context __pyx_string_tab[680]
#define __pyx_n_u_SELinuxPolicy_lookup_level __pyx_string_tab[681]
#define __pyx_n_u_SELinuxPolicy_lookup_range __pyx_string_tab[682]
#define __pyx_n_u_SELinuxPolicy_lookup_role __pyx_string_tab[683]
#define __pyx_n_u_SELinuxPolicy_lookup_sensitivity __pyx_string_tab[684]
#define __pyx_n_u_SELinuxPolicy_lookup_type __pyx_string_tab[685]
#define __pyx_n_u_SELinuxPolicy_lookup_type_or_att __pyx_string_tab[686]
#define __pyx_n_u_SELinuxPolicy_lookup_typeattr __pyx_string_tab[687]
#define __pyx_n_u_SELinuxPolicy_lookup_user __pyx_string_tab[688]
#define __pyx_n_u_SELinuxPolicy_mlsrules __pyx_string_tab[689]
#define __pyx_n_u_SELinuxPolicy_netifcons __pyx_string_tab[690]
#define __pyx_n_u_SELinuxPolicy_nodecons __pyx_string_tab[691]
#define __pyx_n_u_SELinuxPolicy_pcidevicecons __pyx_string_tab[692]
#define __pyx_n_u_SELinuxPolicy_pirqcons __pyx_string_tab[693]
#define __pyx_n_u_SELinuxPolicy_polcaps __pyx_string_tab[694]
#define __pyx_n_u_SELinuxPolicy_portcons __pyx_string_tab[695]
#define __pyx_n_u_SELinuxPolicy_rbacrules __pyx_string_tab[696]
#define __pyx_n_u_SELinuxPolicy_roles __pyx_string_tab[697]
#define __pyx_n_u_SELinuxPolicy_sensitivities __pyx_string_tab[698]
#define __pyx_n_u_SELinuxPolicy_terules __pyx_string_tab[699]
#define __pyx_n_u_SELinuxPolicy_typeattributes __pyx_string_tab[700]
#define __pyx_n_u_SELinuxPolicy_types __pyx_string_tab[701]
#define __pyx_n_u_SELinuxPolicy_users __pyx_string_tab[702]
#define __pyx_n_u_Sensitivity __pyx_string_tab[703]
#define __pyx_n_u_SensitivityHashtabIterator __pyx_string_tab[704]
#define __pyx_n_u_SensitivityHashtabIterator___red __pyx_string_tab[705]
#define __pyx_n_u_SensitivityHashtabIterator___set __pyx_string_tab[706]
#define __pyx_n_u_SensitivityHashtabIterator_reset __pyx_string_tab[707]
#define __pyx_n_u_Sensitivity___reduce_cython __pyx_string_tab[708]
#define __pyx_n_u_Sensitivity___setstate_cython __pyx_string_tab[709]
#define __pyx_n_u_Sensitivity_aliases __pyx_string_tab[710]
#define __pyx_n_u_Sensitivity_level_decl __pyx_string_tab[711]
#define __pyx_n_u_Sensitivity_statement __pyx_string_tab[712]
#define __pyx_n_u_StackObj __pyx_string_tab[713]
#define __pyx_n_u_SymbolUseError __pyx_string_tab[714]
#define __pyx_n_u_TERule __pyx_string_tab[715]
#define __pyx_n_u_TERuleIterator __pyx_string_tab[716]
#define __pyx_n_u_TERuleIterator___reduce_cython __pyx_string_tab[717]
#define __pyx_n_u_TERuleIterator___setstate_cython __pyx_string_tab[718]
#define __pyx_n_u_TERuleIterator_reset __pyx_string_tab[719]
#define __pyx_n_u_TERuleIterator_ruletype_count __pyx_string_tab[720]
#define __pyx_n_u_TERuleNoFilename __pyx_string_tab[721]
#define __pyx_n_u_TERule___reduce_cython __pyx_string_tab[722]
#define __pyx_n_u_TERule___setstate_cython __pyx_string_tab[723]
#define __pyx_n_u_TERule_expand __pyx_string_tab[724]
#define __pyx_n_u_TERule_statement __pyx_string_tab[725]
#define __pyx_n_u_TERuletype __pyx_string_tab[726]
#define __pyx_n_u_True __pyx_string_tab[727]
#define __pyx_n_u_TruthTableRow __pyx_string_tab[728]
#define __pyx_n_u_Type __pyx_string_tab[729]
#define __pyx_n_u_TypeAttribute __pyx_string_tab[730]
#define __pyx_n_u_TypeAttributeEbitmapIterator __pyx_string_tab[731]
#define __pyx_n_u_TypeAttributeEbitmapIterator___r __pyx_string_tab[732]
#define __pyx_n_u_TypeAttributeEbitmapIterator___s __pyx_string_tab[733]
#define __pyx_n_u_TypeAttributeHashtabIterator __pyx_string_tab[734]
#define __pyx_n_u_TypeAttributeHashtabIterator___r __pyx_string_tab[735]
#define __pyx_n_u_TypeAttributeHashtabIterator___s __pyx_string_tab[736]
#define __pyx_n_u_TypeAttributeHashtabIterator_res __pyx_string_tab[737]
#define __pyx_n_u_TypeAttribute___reduce_cython __pyx_string_tab[738]
#define __pyx_n_u_TypeAttribute___setstate_cython __pyx_string_tab[739]
#define __pyx_n_u_TypeAttribute_aliases __pyx_string_tab[740]
#define __pyx_n_u_TypeAttribute_attributes __pyx_string_tab[741]
#define __pyx_n_u_TypeAttribute_expand __pyx_string_tab[742]
#define __pyx_n_u_TypeAttribute_statement __pyx_string_tab[743]
#define __pyx_n_u_TypeEbitmapIterator __pyx_string_tab[744]
#define __pyx_n_u_TypeEbitmapIterator___reduce_cyt __pyx_string_tab[745]
#define __pyx_n_u_TypeEbitmapIterator___setstate_c __pyx_string_tab[746]
#define __pyx_n_u_TypeHashtabIterator __pyx_string_tab[747]
#define __pyx_n_u_TypeHashtabIterator___reduce_cyt __pyx_string_tab[748]
#define __pyx_n_u_TypeHashtabIterator___setstate_c __pyx_string_tab[749]
#define __pyx_n_u_TypeHashtabIterator_reset __pyx_string_tab[750]
#define __pyx_n_u_TypeOrAttr __pyx_string_tab[751]
#define __pyx_n_u_TypeOrAttributeEbitmapIterator __pyx_string_tab[752]
#define __pyx_n_u_TypeOrAttributeEbitmapIterator_2 __pyx_string_tab[753]
#define __pyx_n_u_TypeOrAttributeEbitmapIterator_3 __pyx_string_tab[754]
#define __pyx_n_u_TypeVar __pyx_string_tab[755]
#define __pyx_n_u_Type___reduce_cython __pyx_string_tab[756]
#define __pyx_n_u_Type___setstate_cython __pyx_string_tab[757]
#define __pyx_n_u_Type_aliases __pyx_string_tab[758]
#define __pyx_n_u_Type_attributes __pyx_string_tab[759]
#define __pyx_n_u_Type_expand __pyx_string_tab[760]
#define __pyx_n_u_Type_statement __pyx_string_tab[761]
#define __pyx_n_u_TypeboundsIterator __pyx_string_tab[762]
#define __pyx_n_u_TypeboundsIterator___reduce_cyth __pyx_string_tab[763]
#define __pyx_n_u_TypeboundsIterator___setstate_cy __pyx_string_tab[764]
#define __pyx_n_u_TypeboundsIterator_reset __pyx_string_tab[765]
#define __pyx_n_u_Union __pyx_string_tab[766]
#define __pyx_n_u_User __pyx_string_tab[767]
#define __pyx_n_u_UserEbitmapIterator __pyx_string_tab[768]
#define __pyx_n_u_UserEbitmapIterator___reduce_cyt __pyx_string_tab[769]
#define __pyx_n_u_UserEbitmapIterator___setstate_c __pyx_string_tab[770]
#define __pyx_n_u_UserHashtabIterator __pyx_string_tab[771]
#define __pyx_n_u_UserHashtabIterator___reduce_cyt __pyx_string_tab[772]
#define __pyx_n_u_UserHashtabIterator___setstate_c __pyx_string_tab[773]
#define __pyx_n_u_User___reduce_cython __pyx_string_tab[774]
#define __pyx_n_u_User___setstate_cython __pyx_string_tab[775]
#define __pyx_n_u_User_factory_locals_genexpr __pyx_string_tab[776]
#define __pyx_n_u_User_statement __pyx_string_tab[777]
#define __pyx_n_u_Validatetrans __pyx_string_tab[778]
#define __pyx_n_u_ValidatetransIterator __pyx_string_tab[779]
#define __pyx_n_u_ValidatetransIterator___reduce_c __pyx_string_tab[780]
#define __pyx_n_u_ValidatetransIterator___setstate __pyx_string_tab[781]
#define __pyx_n_u_Validatetrans___reduce_cython __pyx_string_tab[782]
#define __pyx_n_u_Validatetrans___setstate_cython __pyx_string_tab[783]
#define __pyx_n_u_Validatetrans_statement __pyx_string_tab[784]
#define __pyx_n_u_WeakKeyDefaultDict __pyx_string_tab[785]
#define __pyx_n_u_WeakKeyDefaultDict___getitem __pyx_string_tab[786]
#define __pyx_n_u_WeakKeyDefaultDict___init __pyx_string_tab[787]
#define __pyx_n_u_WeakKeyDefaultDict___missing __pyx_string_tab[788]
#define __pyx_n_u_WeakKeyDictionary __pyx_string_tab[789]
#define __pyx_n_u_XEN_SIDNAMES __pyx_string_tab[790]
#define __pyx_n_u_XpermSet __pyx_string_tab[791]
#define __pyx_n_u_XpermSet___format __pyx_string_tab[792]
#define __pyx_n_u_XpermSet___reduce_cython __pyx_string_tab[793]
#define __pyx_n_u_XpermSet___setstate_cython __pyx_string_tab[794]
#define __pyx_n_u_XpermSet_ranges __pyx_string_tab[795]
#define __pyx_n_u__36 __pyx_string_tab[796]
#define __pyx_n_u__47 __pyx_string_tab[797]
#define __pyx_n_u_a_3 __pyx_string_tab[798]
#define __pyx_n_u_a_4 __pyx_string_tab[799]
#define __pyx_n_u_aliases __pyx_string_tab[800]
#define __pyx_n_u_allow __pyx_string_tab[801]
#define __pyx_n_u_allowxperm __pyx_string_tab[802]
#define __pyx_n_u_and __pyx_string_tab[803]
#define __pyx_n_u_annotations __pyx_string_tab[804]
#define __pyx_n_u_any __pyx_string_tab[805]
#define __pyx_n_u_any_socket __pyx_string_tab[806]
#define __pyx_n_u_args __pyx_string_tab[807]
#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[808]
#define __pyx_n_u_attributes __pyx_string_tab[809]
#define __pyx_n_u_auditallow __pyx_string_tab[810]
#define __pyx_n_u_auditallowxperm __pyx_string_tab[811]
#define __pyx_n_u_b_2 __pyx_string_tab[812]
#define __pyx_n_u_b_3 __pyx_string_tab[813]
#define __pyx_n_u_blk_file __pyx_string_tab[814]
#define __pyx_n_u_bool_2 __pyx_string_tab[815]
#define __pyx_n_u_bool_values __pyx_string_tab[816]
#define __pyx_n_u_bools __pyx_string_tab[817]
#define __pyx_n_u_bound __pyx_string_tab[818]
#define __pyx_n_u_bounds __pyx_string_tab[819]
#define __pyx_n_u_bucket __pyx_string_tab[820]
#define __pyx_n_u_c __pyx_string_tab[821]
#define __pyx_n_u_categories __pyx_string_tab[822]
#define __pyx_n_u_chain __pyx_string_tab[823]
#define __pyx_n_u_child __pyx_string_tab[824]
#define __pyx_n_u_chr_file __pyx_string_tab[825]
#define __pyx_n_u_class_2 __pyx_string_tab[826]
#define __pyx_n_u_class_getitem __pyx_string_tab[827]
#define __pyx_n_u_classes __pyx_string_tab[828]
#define __pyx_n_u_cline_in_traceback __pyx_string_tab[829]
#define __pyx_n_u_close __pyx_string_tab[830]
#define __pyx_n_u_cls __pyx_string_tab[831]
#define __pyx_n_u_collections __pyx_string_tab[832]
#define __pyx_n_u_common __pyx_string_tab[833]
#define __pyx_n_u_commons __pyx_string_tab[834]
#define __pyx_n_u_cond_expr_val_to_details __pyx_string_tab[835]
#define __pyx_n_u_conditional __pyx_string_tab[836]
#define __pyx_n_u_conditional_block __pyx_string_tab[837]
#define __pyx_n_u_conditionals __pyx_string_tab[838]
#define __pyx_n_u_constrain __pyx_string_tab[839]
#define __pyx_n_u_constraints __pyx_string_tab[840]
#define __pyx_n_u_copy __pyx_string_tab[841]
#define __pyx_n_u_count __pyx_string_tab[842]
#define __pyx_n_u_ctx __pyx_string_tab[843]
#define __pyx_n_u_curr __pyx_string_tab[844]
#define __pyx_n_u_d_2 __pyx_string_tab[845]
#define __pyx_n_u_dataclass __pyx_string_tab[846]
#define __pyx_n_u_dataclasses __pyx_string_tab[847]
#define __pyx_n_u_datum __pyx_string_tab[848]
#define __pyx_n_u_dccp __pyx_string_tab[849]
#define __pyx_n_u_debug __pyx_string_tab[850]
#define __pyx_n_u_deepcopy __pyx_string_tab[851]
#define __pyx_n_u_default __pyx_string_tab[852]
#define __pyx_n_u_default_factory __pyx_string_tab[853]
#define __pyx_n_u_default_map __pyx_string_tab[854]
#define __pyx_n_u_default_range __pyx_string_tab[855]
#define __pyx_n_u_default_role __pyx_string_tab[856]
#define __pyx_n_u_default_type __pyx_string_tab[857]
#define __pyx_n_u_default_user __pyx_string_tab[858]
#define __pyx_n_u_defaults __pyx_string_tab[859]
#define __pyx_n_u_defaultvalue __pyx_string_tab[860]
#define __pyx_n_u_deny __pyx_string_tab[861]
#define __pyx_n_u_deref __pyx_string_tab[862]
#define __pyx_n_u_derive_expanded __pyx_string_tab[863]
#define __pyx_n_u_derive_expanded_locals_genexpr __pyx_string_tab[864]
#define __pyx_n_u_device __pyx_string_tab[865]
#define __pyx_n_u_devicetreecons __pyx_string_tab[866]
#define __pyx_n_u_devnull __pyx_string_tab[867]
#define __pyx_n_u_dict __pyx_string_tab[868]
#define __pyx_n_u_dict_2 __pyx_string_tab[869]
#define __pyx_n_u_dir __pyx_string_tab[870]
#define __pyx_n_u_doc __pyx_string_tab[871]
#define __pyx_n_u_dom __pyx_string_tab[872]
#define __pyx_n_u_dom0 __pyx_string_tab[873]
#define __pyx_n_u_domDM __pyx_string_tab[874]
#define __pyx_n_u_domU __pyx_string_tab[875]
#define __pyx_n_u_domby __pyx_string_tab[876]
#define __pyx_n_u_domio __pyx_string_tab[877]
#define __pyx_n_u_domxen __pyx_string_tab[878]
#define __pyx_n_u_dontaudit __pyx_string_tab[879]
#define __pyx_n_u_dontauditxperm __pyx_string_tab[880]
#define __pyx_n_u_e __pyx_string_tab[881]
#define __pyx_n_u_enabled __pyx_string_tab[882]
#define __pyx_n_u_enum __pyx_string_tab[883]
#define __pyx_n_u_eq __pyx_string_tab[884]
#define __pyx_n_u_eq_2 __pyx_string_tab[885]
#define __pyx_n_u_errno __pyx_string_tab[886]
#define __pyx_n_u_evaluate __pyx_string_tab[887]
#define __pyx_n_u_exception __pyx_string_tab[888]
#define __pyx_n_u_expand __pyx_string_tab[889]
#define __pyx_n_u_expr_node __pyx_string_tab[890]
#define __pyx_n_u_expr_op_to_text __pyx_string_tab[891]
#define __pyx_n_u_expr_type_to_text __pyx_string_tab[892]
#define __pyx_n_u_expression __pyx_string_tab[893]
#define __pyx_n_u_false_rules __pyx_string_tab[894]
#define __pyx_n_u_fc_path __pyx_string_tab[895]
#define __pyx_n_u_field __pyx_string_tab[896]
#define __pyx_n_u_fifo_file __pyx_string_tab[897]
#define __pyx_n_u_file __pyx_string_tab[898]
#define __pyx_n_u_file_labels __pyx_string_tab[899]
#define __pyx_n_u_filetype __pyx_string_tab[900]
#define __pyx_n_u_filetype_to_text __pyx_string_tab[901]
#define __pyx_n_u_format __pyx_string_tab[902]
#define __pyx_n_u_format_2 __pyx_string_tab[903]
#define __pyx_n_u_format___locals_lambda __pyx_string_tab[904]
#define __pyx_n_u_from_class __pyx_string_tab[905]
#define __pyx_n_u_from_default_range __pyx_string_tab[906]
#define __pyx_n_u_frozen __pyx_string_tab[907]
#define __pyx_n_u_fs __pyx_string_tab[908]
#define __pyx_n_u_fs_use_task __pyx_string_tab[909]
#define __pyx_n_u_fs_use_trans __pyx_string_tab[910]
#define __pyx_n_u_fs_use_xattr __pyx_string_tab[911]
#define __pyx_n_u_fs_uses __pyx_string_tab[912]
#define __pyx_n_u_func __pyx_string_tab[913]
#define __pyx_n_u_genexpr __pyx_string_tab[914]
#define __pyx_n_u_genfscons __pyx_string_tab[915]
#define __pyx_n_u_get __pyx_string_tab[916]
#define __pyx_n_u_getLogger __pyx_string_tab[917]
#define __pyx_n_u_getitem __pyx_string_tab[918]
#define __pyx_n_u_getstate __pyx_string_tab[919]
#define __pyx_n_u_glblub __pyx_string_tab[920]
#define __pyx_n_u_group __pyx_string_tab[921]
#define __pyx_n_u_groupby __pyx_string_tab[922]
#define __pyx_n_u_h1 __pyx_string_tab[923]
#define __pyx_n_u_h2 __pyx_string_tab[924]
#define __pyx_n_u_hash __pyx_string_tab[925]
#define __pyx_n_u_high __pyx_string_tab[926]
#define __pyx_n_u_i __pyx_string_tab[927]
#define __pyx_n_u_ibendportcons __pyx_string_tab[928]
#define __pyx_n_u_ibpkeycons __pyx_string_tab[929]
#define __pyx_n_u_icmp_socket __pyx_string_tab[930]
#define __pyx_n_u_id __pyx_string_tab[931]
#define __pyx_n_u_igmp_packet __pyx_string_tab[932]
#define __pyx_n_u_incomp __pyx_string_tab[933]
#define __pyx_n_u_infix __pyx_string_tab[934]
#define __pyx_n_u_infix_locals_StackObj __pyx_string_tab[935]
#define __pyx_n_u_infix_locals_lambda __pyx_string_tab[936]
#define __pyx_n_u_info __pyx_string_tab[937]
#define __pyx_n_u_init __pyx_string_tab[938]
#define __pyx_n_u_init_2 __pyx_string_tab[939]
#define __pyx_n_u_initialsids __pyx_string_tab[940]
#define __pyx_n_u_int __pyx_string_tab[941]
#define __pyx_n_u_ioctl __pyx_string_tab[942]
#define __pyx_n_u_iomem __pyx_string_tab[943]
#define __pyx_n_u_iomemcons __pyx_string_tab[944]
#define __pyx_n_u_ioport __pyx_string_tab[945]
#define __pyx_n_u_ioportcons __pyx_string_tab[946]
#define __pyx_n_u_ip_network __pyx_string_tab[947]
#define __pyx_n_u_ipaddress __pyx_string_tab[948]
#define __pyx_n_u_ipv4 __pyx_string_tab[949]
#define __pyx_n_u_ipv6 __pyx_string_tab[950]
#define __pyx_n_u_irq __pyx_string_tab[951]
#define __pyx_n_u_is_coroutine __pyx_string_tab[952]
#define __pyx_n_u_ispermissive __pyx_string_tab[953]
#define __pyx_n_u_items __pyx_string_tab[954]
#define __pyx_n_u_itertools __pyx_string_tab[955]
#define __pyx_n_u_j __pyx_string_tab[956]
#define __pyx_n_u_k __pyx_string_tab[957]
#define __pyx_n_u_kernel __pyx_string_tab[958]
#define __pyx_n_u_key __pyx_string_tab[959]
#define __pyx_n_u_kmod __pyx_string_tab[960]
#define __pyx_n_u_kwargs __pyx_string_tab[961]
#define __pyx_n_u_l1 __pyx_string_tab[962]
#define __pyx_n_u_l2 __pyx_string_tab[963]
#define __pyx_n_u_lambda __pyx_string_tab[964]
#define __pyx_n_u_len___locals_genexpr __pyx_string_tab[965]
#define __pyx_n_u_level_2 __pyx_string_tab[966]
#define __pyx_n_u_level_decl __pyx_string_tab[967]
#define __pyx_n_u_levels __pyx_string_tab[968]
#define __pyx_n_u_libsepol __pyx_string_tab[969]
#define __pyx_n_u_lnk_file __pyx_string_tab[970]
#define __pyx_n_u_logging __pyx_string_tab[971]
#define __pyx_n_u_lookup __pyx_string_tab[972]
#define __pyx_n_u_lookup_boolean __pyx_string_tab[973]
#define __pyx_n_u_lookup_boolean_name_sub __pyx_string_tab[974]
#define __pyx_n_u_lookup_category __pyx_string_tab[975]
#define __pyx_n_u_lookup_class __pyx_string_tab[976]
#define __pyx_n_u_lookup_common __pyx_string_tab[977]
#define __pyx_n_u_lookup_context __pyx_string_tab[978]
#define __pyx_n_u_lookup_level __pyx_string_tab[979]
#define __pyx_n_u_lookup_range __pyx_string_tab[980]
#define __pyx_n_u_lookup_role __pyx_string_tab[981]
#define __pyx_n_u_lookup_sensitivity __pyx_string_tab[982]
#define __pyx_n_u_lookup_type __pyx_string_tab[983]
#define __pyx_n_u_lookup_type_or_attr __pyx_string_tab[984]
#define __pyx_n_u_lookup_typeattr __pyx_string_tab[985]
#define __pyx_n_u_lookup_user __pyx_string_tab[986]
#define __pyx_n_u_low __pyx_string_tab[987]
#define __pyx_n_u_low_high __pyx_string_tab[988]
#define __pyx_n_u_lower __pyx_string_tab[989]
#define __pyx_n_u_main __pyx_string_tab[990]
#define __pyx_n_u_map __pyx_string_tab[991]
#define __pyx_n_u_max_precedence __pyx_string_tab[992]
#define __pyx_n_u_maxsplit __pyx_string_tab[993]
#define __pyx_n_u_memo __pyx_string_tab[994]
#define __pyx_n_u_metaclass __pyx_string_tab[995]
#define __pyx_n_u_missing __pyx_string_tab[996]
#define __pyx_n_u_mls_level __pyx_string_tab[997]
#define __pyx_n_u_mls_range __pyx_string_tab[998]
#define __pyx_n_u_mlsconstrain __pyx_string_tab[999]
#define __pyx_n_u_mlsrules __pyx_string_tab[1000]
#define __pyx_n_u_mlsvalidatetrans __pyx_string_tab[1001]
#define __pyx_n_u_module __pyx_string_tab[1002]
#define __pyx_n_u_mro_entries __pyx_string_tab[1003]
#define __pyx_n_u_n __pyx_string_tab[1004]
#define __pyx_n_u_name __pyx_string_tab[1005]
#define __pyx_n_u_name_2 __pyx_string_tab[1006]
#define __pyx_n_u_name_3 __pyx_string_tab[1007]
#define __pyx_n_u_names __pyx_string_tab[1008]
#define __pyx_n_u_netif __pyx_string_tab[1009]
#define __pyx_n_u_netifcons __pyx_string_tab[1010]
#define __pyx_n_u_netmsg __pyx_string_tab[1011]
#define __pyx_n_u_neverallow __pyx_string_tab[1012]
#define __pyx_n_u_neverallowxperm __pyx_string_tab[1013]
#define __pyx_n_u_new __pyx_string_tab[1014]
#define __pyx_n_u_new_name __pyx_string_tab[1015]
#define __pyx_n_u_next __pyx_string_tab[1016]
#define __pyx_n_u_next_2 __pyx_string_tab[1017]
#define __pyx_n_u_next_stype __pyx_string_tab[1018]
#define __pyx_n_u_nlmsg __pyx_string_tab[1019]
#define __pyx_n_u_node __pyx_string_tab[1020]
#define __pyx_n_u_nodecons __pyx_string_tab[1021]
#define __pyx_n_u_not __pyx_string_tab[1022]
#define __pyx_n_u_object_r __pyx_string_tab[1023]
#define __pyx_n_u_op __pyx_string_tab[1024]
#define __pyx_n_u_op_precedence __pyx_string_tab[1025]
#define __pyx_n_u_operand __pyx_string_tab[1026]
#define __pyx_n_u_operand1 __pyx_string_tab[1027]
#define __pyx_n_u_operand1_info __pyx_string_tab[1028]
#define __pyx_n_u_operand2 __pyx_string_tab[1029]
#define __pyx_n_u_operand2_info __pyx_string_tab[1030]
#define __pyx_n_u_operand_info __pyx_string_tab[1031]
#define __pyx_n_u_operands __pyx_string_tab[1032]
#define __pyx_n_u_operator __pyx_string_tab[1033]
#define __pyx_n_u_or __pyx_string_tab[1034]
#define __pyx_n_u_order __pyx_string_tab[1035]
#define __pyx_n_u_other __pyx_string_tab[1036]
#define __pyx_n_u_p_2 __pyx_string_tab[1037]
#define __pyx_n_u_parent __pyx_string_tab[1038]
#define __pyx_n_u_path __pyx_string_tab[1039]
#define __pyx_n_u_pcidevicecons __pyx_string_tab[1040]
#define __pyx_n_u_perms __pyx_string_tab[1041]
#define __pyx_n_u_pirqcons __pyx_string_tab[1042]
#define __pyx_n_u_polcaps __pyx_string_tab[1043]
#define __pyx_n_u_policy __pyx_string_tab[1044]
#define __pyx_n_u_policyfile __pyx_string_tab[1045]
#define __pyx_n_u_pop __pyx_string_tab[1046]
#define __pyx_n_u_port __pyx_string_tab[1047]
#define __pyx_n_u_portcons __pyx_string_tab[1048]
#define __pyx_n_u_post_init __pyx_string_tab[1049]
#define __pyx_n_u_precedence __pyx_string_tab[1050]
#define __pyx_n_u_precedence_2 __pyx_string_tab[1051]
#define __pyx_n_u_prepare __pyx_string_tab[1052]
#define __pyx_n_u_product __pyx_string_tab[1053]
#define __pyx_n_u_pyx_checksum __pyx_string_tab[1054]
#define __pyx_n_u_pyx_result __pyx_string_tab[1055]
#define __pyx_n_u_pyx_state __pyx_string_tab[1056]
#define __pyx_n_u_pyx_type __pyx_string_tab[1057]
#define __pyx_n_u_pyx_unpickle_AVRule __pyx_string_tab[1058]
#define __pyx_n_u_pyx_unpickle_AVRuleXperm __pyx_string_tab[1059]
#define __pyx_n_u_pyx_unpickle_BaseConstraint __pyx_string_tab[1060]
#define __pyx_n_u_pyx_unpickle_BaseMLSLevel __pyx_string_tab[1061]
#define __pyx_n_u_pyx_unpickle_BaseTERule __pyx_string_tab[1062]
#define __pyx_n_u_pyx_unpickle_BaseType __pyx_string_tab[1063]
#define __pyx_n_u_pyx_unpickle_Boolean __pyx_string_tab[1064]
#define __pyx_n_u_pyx_unpickle_Bounds __pyx_string_tab[1065]
#define __pyx_n_u_pyx_unpickle_Category __pyx_string_tab[1066]
#define __pyx_n_u_pyx_unpickle_Common __pyx_string_tab[1067]
#define __pyx_n_u_pyx_unpickle_Conditional __pyx_string_tab[1068]
#define __pyx_n_u_pyx_unpickle_ConditionalOperat __pyx_string_tab[1069]
#define __pyx_n_u_pyx_unpickle_Constraint __pyx_string_tab[1070]
#define __pyx_n_u_pyx_unpickle_ConstraintExprNod __pyx_string_tab[1071]
#define __pyx_n_u_pyx_unpickle_ConstraintExpress __pyx_string_tab[1072]
#define __pyx_n_u_pyx_unpickle_Context __pyx_string_tab[1073]
#define __pyx_n_u_pyx_unpickle_Default __pyx_string_tab[1074]
#define __pyx_n_u_pyx_unpickle_DefaultRange __pyx_string_tab[1075]
#define __pyx_n_u_pyx_unpickle_Devicetreecon __pyx_string_tab[1076]
#define __pyx_n_u_pyx_unpickle_FSUse __pyx_string_tab[1077]
#define __pyx_n_u_pyx_unpickle_FileNameTERule __pyx_string_tab[1078]
#define __pyx_n_u_pyx_unpickle_GenfsFiletype __pyx_string_tab[1079]
#define __pyx_n_u_pyx_unpickle_Genfscon __pyx_string_tab[1080]
#define __pyx_n_u_pyx_unpickle_Ibendportcon __pyx_string_tab[1081]
#define __pyx_n_u_pyx_unpickle_Ibpkeycon __pyx_string_tab[1082]
#define __pyx_n_u_pyx_unpickle_InitialSID __pyx_string_tab[1083]
#define __pyx_n_u_pyx_unpickle_IoctlSet __pyx_string_tab[1084]
#define __pyx_n_u_pyx_unpickle_Iomemcon __pyx_string_tab[1085]
#define __pyx_n_u_pyx_unpickle_Ioportcon __pyx_string_tab[1086]
#define __pyx_n_u_pyx_unpickle_Level __pyx_string_tab[1087]
#define __pyx_n_u_pyx_unpickle_LevelDecl __pyx_string_tab[1088]
#define __pyx_n_u_pyx_unpickle_MLSRule __pyx_string_tab[1089]
#define __pyx_n_u_pyx_unpickle_Netifcon __pyx_string_tab[1090]
#define __pyx_n_u_pyx_unpickle_Nodecon __pyx_string_tab[1091]
#define __pyx_n_u_pyx_unpickle_ObjClass __pyx_string_tab[1092]
#define __pyx_n_u_pyx_unpickle_Ocontext __pyx_string_tab[1093]
#define __pyx_n_u_pyx_unpickle_Pcidevicecon __pyx_string_tab[1094]
#define __pyx_n_u_pyx_unpickle_PermissionVectorI __pyx_string_tab[1095]
#define __pyx_n_u_pyx_unpickle_Pirqcon __pyx_string_tab[1096]
#define __pyx_n_u_pyx_unpickle_PolicyCapability __pyx_string_tab[1097]
#define __pyx_n_u_pyx_unpickle_PolicyIterator __pyx_string_tab[1098]
#define __pyx_n_u_pyx_unpickle_PolicyObject __pyx_string_tab[1099]
#define __pyx_n_u_pyx_unpickle_PolicyRule __pyx_string_tab[1100]
#define __pyx_n_u_pyx_unpickle_PolicySymbol __pyx_string_tab[1101]
#define __pyx_n_u_pyx_unpickle_Portcon __pyx_string_tab[1102]
#define __pyx_n_u_pyx_unpickle_Range __pyx_string_tab[1103]
#define __pyx_n_u_pyx_unpickle_Role __pyx_string_tab[1104]
#define __pyx_n_u_pyx_unpickle_RoleAllow __pyx_string_tab[1105]
#define __pyx_n_u_pyx_unpickle_RoleTransition __pyx_string_tab[1106]
#define __pyx_n_u_pyx_unpickle_Sensitivity __pyx_string_tab[1107]
#define __pyx_n_u_pyx_unpickle_TERule __pyx_string_tab[1108]
#define __pyx_n_u_pyx_unpickle_Type __pyx_string_tab[1109]
#define __pyx_n_u_pyx_unpickle_TypeAttribute __pyx_string_tab[1110]
#define __pyx_n_u_pyx_unpickle_User __pyx_string_tab[1111]
#define __pyx_n_u_pyx_unpickle_Validatetrans __pyx_string_tab[1112]
#define __pyx_n_u_pyx_unpickle_XpermSet __pyx_string_tab[1113]
#define __pyx_n_u_pyx_vtable __pyx_string_tab[1114]
#define __pyx_n_u_qualname __pyx_string_tab[1115]
#define __pyx_n_u_r __pyx_string_tab[1116]
#define __pyx_n_u_r1 __pyx_string_tab[1117]
#define __pyx_n_u_r2 __pyx_string_tab[1118]
#define __pyx_n_u_r3 __pyx_string_tab[1119]
#define __pyx_n_u_range __pyx_string_tab[1120]
#define __pyx_n_u_range_transition __pyx_string_tab[1121]
#define __pyx_n_u_ranges __pyx_string_tab[1122]
#define __pyx_n_u_ranges_locals_genexpr __pyx_string_tab[1123]
#define __pyx_n_u_ranges_locals_lambda __pyx_string_tab[1124]
#define __pyx_n_u_rbacrules __pyx_string_tab[1125]
#define __pyx_n_u_reduce __pyx_string_tab[1126]
#define __pyx_n_u_reduce_cython __pyx_string_tab[1127]
#define __pyx_n_u_reduce_ex __pyx_string_tab[1128]
#define __pyx_n_u_reject __pyx_string_tab[1129]
#define __pyx_n_u_repeat __pyx_string_tab[1130]
#define __pyx_n_u_replace __pyx_string_tab[1131]
#define __pyx_n_u_repr __pyx_string_tab[1132]
#define __pyx_n_u_reset __pyx_string_tab[1133]
#define __pyx_n_u_result __pyx_string_tab[1134]
#define __pyx_n_u_return __pyx_string_tab[1135]
#define __pyx_n_u_role_syms __pyx_string_tab[1136]
#define __pyx_n_u_role_transition __pyx_string_tab[1137]
#define __pyx_n_u_roles __pyx_string_tab[1138]
#define __pyx_n_u_row __pyx_string_tab[1139]
#define __pyx_n_u_ruletype __pyx_string_tab[1140]
#define __pyx_n_u_ruletype_count __pyx_string_tab[1141]
#define __pyx_n_u_s_2 __pyx_string_tab[1142]
#define __pyx_n_u_sclass_to_stat __pyx_string_tab[1143]
#define __pyx_n_u_scmp_packet __pyx_string_tab[1144]
#define __pyx_n_u_sctp __pyx_string_tab[1145]
#define __pyx_n_u_security __pyx_string_tab[1146]
#define __pyx_n_u_self __pyx_string_tab[1147]
#define __pyx_n_u_selinux __pyx_string_tab[1148]
#define __pyx_n_u_send __pyx_string_tab[1149]
#define __pyx_n_u_sensitivities __pyx_string_tab[1150]
#define __pyx_n_u_sensitivity_2 __pyx_string_tab[1151]
#define __pyx_n_u_set_name __pyx_string_tab[1152]
#define __pyx_n_u_setdefault __pyx_string_tab[1153]
#define __pyx_n_u_setitem __pyx_string_tab[1154]
#define __pyx_n_u_setools_policyrep __pyx_string_tab[1155]
#define __pyx_n_u_setstate __pyx_string_tab[1156]
#define __pyx_n_u_setstate_cython __pyx_string_tab[1157]
#define __pyx_n_u_shortlist __pyx_string_tab[1158]
#define __pyx_n_u_sock_file __pyx_string_tab[1159]
#define __pyx_n_u_sorted __pyx_string_tab[1160]
#define __pyx_n_u_source __pyx_string_tab[1161]
#define __pyx_n_u_spec __pyx_string_tab[1162]
#define __pyx_n_u_split __pyx_string_tab[1163]
#define __pyx_n_u_stack __pyx_string_tab[1164]
#define __pyx_n_u_state __pyx_string_tab[1165]
#define __pyx_n_u_statement __pyx_string_tab[1166]
#define __pyx_n_u_statement_locals_genexpr __pyx_string_tab[1167]
#define __pyx_n_u_stmt __pyx_string_tab[1168]
#define __pyx_n_u_str __pyx_string_tab[1169]
#define __pyx_n_u_str_2 __pyx_string_tab[1170]
#define __pyx_n_u_str___locals_genexpr __pyx_string_tab[1171]
#define __pyx_n_u_str___locals_lambda __pyx_string_tab[1172]
#define __pyx_n_u_strict __pyx_string_tab[1173]
#define __pyx_n_u_strip __pyx_string_tab[1174]
#define __pyx_n_u_sum __pyx_string_tab[1175]
#define __pyx_n_u_super __pyx_string_tab[1176]
#define __pyx_n_u_sym_to_text __pyx_string_tab[1177]
#define __pyx_n_u_symbol __pyx_string_tab[1178]
#define __pyx_n_u_symbol_type __pyx_string_tab[1179]
#define __pyx_n_u_sysctl __pyx_string_tab[1180]
#define __pyx_n_u_sysctl_dev __pyx_string_tab[1181]
#define __pyx_n_u_sysctl_fs __pyx_string_tab[1182]
#define __pyx_n_u_sysctl_kernel __pyx_string_tab[1183]
#define __pyx_n_u_sysctl_modprobe __pyx_string_tab[1184]
#define __pyx_n_u_sysctl_net __pyx_string_tab[1185]
#define __pyx_n_u_sysctl_net_unix __pyx_string_tab[1186]
#define __pyx_n_u_sysctl_vm __pyx_string_tab[1187]
#define __pyx_n_u_t __pyx_string_tab[1188]
#define __pyx_n_u_t1 __pyx_string_tab[1189]
#define __pyx_n_u_t2 __pyx_string_tab[1190]
#define __pyx_n_u_t3 __pyx_string_tab[1191]
#define __pyx_n_u_target __pyx_string_tab[1192]
#define __pyx_n_u_tclass __pyx_string_tab[1193]
#define __pyx_n_u_tcp __pyx_string_tab[1194]
#define __pyx_n_u_tcp_socket __pyx_string_tab[1195]
#define __pyx_n_u_terules __pyx_string_tab[1196]
#define __pyx_n_u_test __pyx_string_tab[1197]
#define __pyx_n_u_throw __pyx_string_tab[1198]
#define __pyx_n_u_true_rules __pyx_string_tab[1199]
#define __pyx_n_u_truth_list __pyx_string_tab[1200]
#define __pyx_n_u_truth_table __pyx_string_tab[1201]
#define __pyx_n_u_truth_table_locals_genexpr __pyx_string_tab[1202]
#define __pyx_n_u_type_change __pyx_string_tab[1203]
#define __pyx_n_u_type_member __pyx_string_tab[1204]
#define __pyx_n_u_type_syms __pyx_string_tab[1205]
#define __pyx_n_u_type_transition __pyx_string_tab[1206]
#define __pyx_n_u_typeattributes __pyx_string_tab[1207]
#define __pyx_n_u_typebounds __pyx_string_tab[1208]
#define __pyx_n_u_types __pyx_string_tab[1209]
#define __pyx_n_u_typing __pyx_string_tab[1210]
#define __pyx_n_u_u __pyx_string_tab[1211]
#define __pyx_n_u_u1 __pyx_string_tab[1212]
#define __pyx_n_u_u2 __pyx_string_tab[1213]
#define __pyx_n_u_u3 __pyx_string_tab[1214]
#define __pyx_n_u_udp __pyx_string_tab[1215]
#define __pyx_n_u_unary __pyx_string_tab[1216]
#define __pyx_n_u_undefined __pyx_string_tab[1217]
#define __pyx_n_u_unlabeled __pyx_string_tab[1218]
#define __pyx_n_u_update __pyx_string_tab[1219]
#define __pyx_n_u_use_setstate __pyx_string_tab[1220]
#define __pyx_n_u_user_syms __pyx_string_tab[1221]
#define __pyx_n_u_users __pyx_string_tab[1222]
#define __pyx_n_u_validatetrans __pyx_string_tab[1223]
#define __pyx_n_u_value __pyx_string_tab[1224]
#define __pyx_n_u_value_2 __pyx_string_tab[1225]
#define __pyx_n_u_values __pyx_string_tab[1226]
#define __pyx_n_u_warn __pyx_string_tab[1227]
#define __pyx_n_u_warning __pyx_string_tab[1228]
#define __pyx_n_u_warnings __pyx_string_tab[1229]
#define __pyx_n_u_weakref __pyx_string_tab[1230]
#define __pyx_n_u_with_netmask __pyx_string_tab[1231]
#define __pyx_n_u_x __pyx_string_tab[1232]
#define __pyx_n_u_xen __pyx_string_tab[1233]
#define __pyx_n_u_xperm_type __pyx_string_tab[1234]
#define __pyx_n_u_y __pyx_string_tab[1235]
#define __pyx_kp_b_iso88591_0_q __pyx_string_tab[1236]
#define __pyx_kp_b_iso88591_1 __pyx_string_tab[1237]
#define __pyx_kp_b_iso88591_1F __pyx_string_tab[1238]
#define __pyx_kp_b_iso88591_1F_2 __pyx_string_tab[1239]
#define __pyx_kp_b_iso88591_1_2 __pyx_string_tab[1240]
#define __pyx_kp_b_iso88591_1_q_vS_1_AQ_1 __pyx_string_tab[1241]
#define __pyx_kp_b_iso88591_2_6 __pyx_string_tab[1242]
#define __pyx_kp_b_iso88591_4q __pyx_string_tab[1243]
#define __pyx_kp_b_iso88591_6 __pyx_string_tab[1244]
#define __pyx_kp_b_iso88591_6_2 __pyx_string_tab[1245]
#define __pyx_kp_b_iso88591_6avQ __pyx_string_tab[1246]
#define __pyx_kp_b_iso88591_9AQ __pyx_string_tab[1247]
#define __pyx_kp_b_iso88591_A __pyx_string_tab[1248]
#define __pyx_kp_b_iso88591_AAUUV_Qd_1E_xxrQR_vS_y_1_t7_m1 __pyx_string_tab[1249]
#define __pyx_kp_b_iso88591_AV1 __pyx_string_tab[1250]
#define __pyx_kp_b_iso88591_AV1_2 __pyx_string_tab[1251]
#define __pyx_kp_b_iso88591_A_1D __pyx_string_tab[1252]
#define __pyx_kp_b_iso88591_A_1D_0_XQd __pyx_string_tab[1253]
#define __pyx_kp_b_iso88591_A_1D_4q_6_1_L_E_a_3a_IQd_1A_q __pyx_string_tab[1254]
#define __pyx_kp_b_iso88591_A_1D_Q __pyx_string_tab[1255]
#define __pyx_kp_b_iso88591_A_1D_Qd_6_1_L_E_a_3a_IQd_1A_q __pyx_string_tab[1256]
#define __pyx_kp_b_iso88591_A_1_2_6a_1_2_6a_Q_Kq_86_Jc_1_Q_I __pyx_string_tab[1257]
#define __pyx_kp_b_iso88591_A_2 __pyx_string_tab[1258]
#define __pyx_kp_b_iso88591_A_3 __pyx_string_tab[1259]
#define __pyx_kp_b_iso88591_A_31_z_1HJfA_s_3_aq __pyx_string_tab[1260]
#define __pyx_kp_b_iso88591_A_3aq_3aq __pyx_string_tab[1261]
#define __pyx_kp_b_iso88591_A_3at82Q_E_U_a_D_WAQ_r_k_iq_Q __pyx_string_tab[1262]
#define __pyx_kp_b_iso88591_A_4_1_1_t_1_L_a_q __pyx_string_tab[1263]
#define __pyx_kp_b_iso88591_A_4_S_1_4_IS_4q_4t1 __pyx_string_tab[1264]
#define __pyx_kp_b_iso88591_A_4q_2Qd_Qd_1D_4q_2Qd_Qd_1D __pyx_string_tab[1265]
#define __pyx_kp_b_iso88591_A_4q_4q_5_U_Qa __pyx_string_tab[1266]
#define __pyx_kp_b_iso88591_A_4t1_r_k_iq_IQdRS_D_s_7_A_E_U_B __pyx_string_tab[1267]
#define __pyx_kp_b_iso88591_A_4t1_r_k_iq_IQdR_a_D_uG3b_E_Baq __pyx_string_tab[1268]
#define __pyx_kp_b_iso88591_A_4t1_r_k_iq_IQdR_a_E_at1_t1 __pyx_string_tab[1269]
#define __pyx_kp_b_iso88591_A_4uAT_Q __pyx_string_tab[1270]
#define __pyx_kp_b_iso88591_A_4uBl_s_fBl_A_7q_G1A_4uBl_s_fBl __pyx_string_tab[1271]
#define __pyx_kp_b_iso88591_A_4uBm5_4vR_A_A_9_t9TUUV_4uBm5_4 __pyx_string_tab[1272]
#define __pyx_kp_b_iso88591_A_4uBnE_D_b_a_A_7q_d_STTU_4uBnE __pyx_string_tab[1273]
#define __pyx_kp_b_iso88591_A_4uBnE_D_b_a_A_9_IUVVW_4uBnE_D __pyx_string_tab[1274]
#define __pyx_kp_b_iso88591_A_4uCt1_3at1_2Qd_Q __pyx_string_tab[1275]
#define __pyx_kp_b_iso88591_A_4uCt1_Qd_a_2Qd_hat5 __pyx_string_tab[1276]
#define __pyx_kp_b_iso88591_A_4wat1 __pyx_string_tab[1277]
#define __pyx_kp_b_iso88591_A_4xq_Jat1 __pyx_string_tab[1278]
#define __pyx_kp_b_iso88591_A_4xs_q_q_a_a_a_q_a_vQ_vQ_vQ_q_q __pyx_string_tab[1279]
#define __pyx_kp_b_iso88591_A_4xwa_ar_a_7_XT_t1_ar_6MQdRS_7 __pyx_string_tab[1280]
#define __pyx_kp_b_iso88591_A_5V4q_aq __pyx_string_tab[1281]
#define __pyx_kp_b_iso88591_A_5_aq_4_1A __pyx_string_tab[1282]
#define __pyx_kp_b_iso88591_A_6 __pyx_string_tab[1283]
#define __pyx_kp_b_iso88591_A_6_WBa __pyx_string_tab[1284]
#define __pyx_kp_b_iso88591_A_6_gRwfKWX __pyx_string_tab[1285]
#define __pyx_kp_b_iso88591_A_6a_7q_1_6a_7q_1_2_3a_1_1_Q_C1J __pyx_string_tab[1286]
#define __pyx_kp_b_iso88591_A_81A_0_r_6 __pyx_string_tab[1287]
#define __pyx_kp_b_iso88591_A_81F_4wb_vU_a __pyx_string_tab[1288]
#define __pyx_kp_b_iso88591_A_81F_gRz_q __pyx_string_tab[1289]
#define __pyx_kp_b_iso88591_A_81_t1_e3a_e4_F2EQ_4q_q __pyx_string_tab[1290]
#define __pyx_kp_b_iso88591_A_ARq_q __pyx_string_tab[1291]
#define __pyx_kp_b_iso88591_A_B_a_4_3a_xq_IQ_t1 __pyx_string_tab[1292]
#define __pyx_kp_b_iso88591_A_B_a_4_S_7xq_IQ_Fa_t1D __pyx_string_tab[1293]
#define __pyx_kp_b_iso88591_A_B_a_4_s_HAT_RSEK1_t1D __pyx_string_tab[1294]
#define __pyx_kp_b_iso88591_A_D_1A_wat1_6_A_7_4q_6_A_7_4_AU __pyx_string_tab[1295]
#define __pyx_kp_b_iso88591_A_E_V1_r_A_q_k_AQ __pyx_string_tab[1296]
#define __pyx_kp_b_iso88591_A_E_V1_r_A_q_nARq __pyx_string_tab[1297]
#define __pyx_kp_b_iso88591_A_E__A_r_A_q_k_AQ __pyx_string_tab[1298]
#define __pyx_kp_b_iso88591_A_G1F_a_vWE_Q_q_q_q_Qg_q_Qg __pyx_string_tab[1299]
#define __pyx_kp_b_iso88591_A_G1F_a_vWE_Q_q_q_q_d_7_WA_d_7 __pyx_string_tab[1300]
#define __pyx_kp_b_iso88591_A_G2ZvQ __pyx_string_tab[1301]
#define __pyx_kp_b_iso88591_A_G4xq_t3a_q_l_2Qa __pyx_string_tab[1302]
#define __pyx_kp_b_iso88591_A_HAQ_1_F __pyx_string_tab[1303]
#define __pyx_kp_b_iso88591_A_HAV1D_r_m __pyx_string_tab[1304]
#define __pyx_kp_b_iso88591_A_HAV4wb __pyx_string_tab[1305]
#define __pyx_kp_b_iso88591_A_HA_d_j_D_HCr_D __pyx_string_tab[1306]
#define __pyx_kp_b_iso88591_A_HD __pyx_string_tab[1307]
#define __pyx_kp_b_iso88591_A_HD_ar_4vS_1 __pyx_string_tab[1308]
#define __pyx_kp_b_iso88591_A_HD_gQa_4vS_1 __pyx_string_tab[1309]
#define __pyx_kp_b_iso88591_A_Jd_wc_q_m1Baq __pyx_string_tab[1310]
#define __pyx_kp_b_iso88591_A_Kq_t1D __pyx_string_tab[1311]
#define __pyx_kp_b_iso88591_A_M_q_G1D_d_e9D_9NatSZZ___1D_t1 __pyx_string_tab[1312]
#define __pyx_kp_b_iso88591_A_Q_1D_wat1_6_1_L_E_Q_3a_IQd_1A __pyx_string_tab[1313]
#define __pyx_kp_b_iso88591_A_Q_t1D __pyx_string_tab[1314]
#define __pyx_kp_b_iso88591_A_RvQ_B_e_UYYdde_fCuD_Q_1_t6_E_D __pyx_string_tab[1315]
#define __pyx_kp_b_iso88591_A_RvQ_IQ __pyx_string_tab[1316]
#define __pyx_kp_b_iso88591_A_RvQ_d_5_D_WHT_1 __pyx_string_tab[1317]
#define __pyx_kp_b_iso88591_A_RvQ_d_whha_1 __pyx_string_tab[1318]
#define __pyx_kp_b_iso88591_A_RvQ_d_zQUU_a_fCuD_Q_1_t6_E_D_4 __pyx_string_tab[1319]
#define __pyx_kp_b_iso88591_A_RvQ_t5_fCuD_XX_E_QTTU_1_4uA __pyx_string_tab[1320]
#define __pyx_kp_b_iso88591_A_T_wat1_3aq_6_A_E_E_U_4q_IQd_4A __pyx_string_tab[1321]
#define __pyx_kp_b_iso88591_A_WBgVS __pyx_string_tab[1322]
#define __pyx_kp_b_iso88591_A_WBgV_VW __pyx_string_tab[1323]
#define __pyx_kp_b_iso88591_A_XQfAT_Z __pyx_string_tab[1324]
#define __pyx_kp_b_iso88591_A_a __pyx_string_tab[1325]
#define __pyx_kp_b_iso88591_A_a_2 __pyx_string_tab[1326]
#define __pyx_kp_b_iso88591_A_a_3 __pyx_string_tab[1327]
#define __pyx_kp_b_iso88591_A_a_81_gRt6_A_4vQb_q_s_at8_Q_4s __pyx_string_tab[1328]
#define __pyx_kp_b_iso88591_A_aq_A_CuIXQgT_D_s_7_A_1E_G1E_2Q __pyx_string_tab[1329]
#define __pyx_kp_b_iso88591_A_at7_4q __pyx_string_tab[1330]
#define __pyx_kp_b_iso88591_A_at7_4wat1 __pyx_string_tab[1331]
#define __pyx_kp_b_iso88591_A_d_YfLPVVW __pyx_string_tab[1332]
#define __pyx_kp_b_iso88591_A_d_YfMQWWX __pyx_string_tab[1333]
#define __pyx_kp_b_iso88591_A_d_a_T_81AV87_Qa_G1_Qe1D_1Ct5_Q __pyx_string_tab[1334]
#define __pyx_kp_b_iso88591_A_e7_4q __pyx_string_tab[1335]
#define __pyx_kp_b_iso88591_A_havQd_1 __pyx_string_tab[1336]
#define __pyx_kp_b_iso88591_A_havQd_7_P __pyx_string_tab[1337]
#define __pyx_kp_b_iso88591_A_havQd_7_PZZ __pyx_string_tab[1338]
#define __pyx_kp_b_iso88591_A_havT_F __pyx_string_tab[1339]
#define __pyx_kp_b_iso88591_A_nARq_A __pyx_string_tab[1340]
#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[1341]
#define __pyx_kp_b_iso88591_A_q_2 __pyx_string_tab[1342]
#define __pyx_kp_b_iso88591_A_q_3 __pyx_string_tab[1343]
#define __pyx_kp_b_iso88591_A_q_G1D __pyx_string_tab[1344]
#define __pyx_kp_b_iso88591_A_q_Ry __pyx_string_tab[1345]
#define __pyx_kp_b_iso88591_A_q_d_1G1HD_TQR_M_z_Q_WG_aq_t1_1 __pyx_string_tab[1346]
#define __pyx_kp_b_iso88591_A_r_k_e1D __pyx_string_tab[1347]
#define __pyx_kp_b_iso88591_A_r_k_iq_A __pyx_string_tab[1348]
#define __pyx_kp_b_iso88591_A_r_k_iq_IQd_1DPQ __pyx_string_tab[1349]
#define __pyx_kp_b_iso88591_A_r_k_iq_IQd_1DPZZ __pyx_string_tab[1350]
#define __pyx_kp_b_iso88591_A_r_k_j_Q __pyx_string_tab[1351]
#define __pyx_kp_b_iso88591_A_s_1 __pyx_string_tab[1352]
#define __pyx_kp_b_iso88591_A_t1 __pyx_string_tab[1353]
#define __pyx_kp_b_iso88591_A_t1D __pyx_string_tab[1354]
#define __pyx_kp_b_iso88591_A_t1D_2 __pyx_string_tab[1355]
#define __pyx_kp_b_iso88591_A_t1D_3 __pyx_string_tab[1356]
#define __pyx_kp_b_iso88591_A_t7_JfA __pyx_string_tab[1357]
#define __pyx_kp_b_iso88591_A_t7_Q_Ry_I_T_a_1_iq_FRS_t1D_V1 __pyx_string_tab[1358]
#define __pyx_kp_b_iso88591_A_uA_gQa __pyx_string_tab[1359]
#define __pyx_kp_b_iso88591_A_uCq __pyx_string_tab[1360]
#define __pyx_kp_b_iso88591_A_vQd_a __pyx_string_tab[1361]
#define __pyx_kp_b_iso88591_A_wat83at7 __pyx_string_tab[1362]
#define __pyx_kp_b_iso88591_A_xq __pyx_string_tab[1363]
#define __pyx_kp_b_iso88591_A_xq_A_Kq_G1_3at82Q_O7_6_gQd_q __pyx_string_tab[1364]
#define __pyx_kp_b_iso88591_A_xq_at7_A __pyx_string_tab[1365]
#define __pyx_kp_b_iso88591_A_xq_at7_G6Q __pyx_string_tab[1366]
#define __pyx_kp_b_iso88591_A_xq_d_1 __pyx_string_tab[1367]
#define __pyx_kp_b_iso88591_A_xq_d_V1 __pyx_string_tab[1368]
#define __pyx_kp_b_iso88591_A_y_0_t7_A5_QfD_rQR __pyx_string_tab[1369]
#define __pyx_kp_b_iso88591_A_y_haq7_7_JfTU7Gq_6aq7_7_JfTU7G __pyx_string_tab[1370]
#define __pyx_kp_b_iso88591_A_z_fAT __pyx_string_tab[1371]
#define __pyx_kp_b_iso88591_A_z_hm81E_q_A __pyx_string_tab[1372]
#define __pyx_kp_b_iso88591_A_z_k_hat1 __pyx_string_tab[1373]
#define __pyx_kp_b_iso88591_E_r_E_V4uCt1AXQ_q_oQb __pyx_string_tab[1374]
#define __pyx_kp_b_iso88591_Jaq __pyx_string_tab[1375]
#define __pyx_kp_b_iso88591_Q __pyx_string_tab[1376]
#define __pyx_kp_b_iso88591_Q_2 __pyx_string_tab[1377]
#define __pyx_kp_b_iso88591_Q_E_1_r_E_V4uCt1AXQ_q_1A __pyx_string_tab[1378]
#define __pyx_kp_b_iso88591_QfA __pyx_string_tab[1379]
#define __pyx_kp_b_iso88591_T_4_D_d_D_G1F_a_vWE_Q_q_t9G5_4 __pyx_string_tab[1380]
#define __pyx_kp_b_iso88591_T_4_d_d_PTTeeiioosszz_G_G_K_K_S __pyx_string_tab[1381]
#define __pyx_kp_b_iso88591_T_4_e4vT_IUYYZ_G1F_a_vWE_Q_q_t9 __pyx_string_tab[1382]
#define __pyx_kp_b_iso88591_T_4uD_d_4q_G1F_a_vWE_Q_q_t9G5_4 __pyx_string_tab[1383]
#define __pyx_kp_b_iso88591_T_4vT_A_G1F_a_vWE_Q_q_t9G5_4vWE __pyx_string_tab[1384]
#define __pyx_kp_b_iso88591_T_4vT_A_G1F_a_vWE_Q_q_t9G5_4vWE_2 __pyx_string_tab[1385]
#define __pyx_kp_b_iso88591_T_4vT_G1F_a_vWE_Q_q_t9G5_4xwa_q __pyx_string_tab[1386]
#define __pyx_kp_b_iso88591_T_4vT_IT_G1F_a_vWE_Q_q_t9G5_4vW __pyx_string_tab[1387]
#define __pyx_kp_b_iso88591_T_4vT_Yd_G1F_a_vWE_Q_q_t9G5_4wg __pyx_string_tab[1388]
#define __pyx_kp_b_iso88591_T_4vT_Yd_G1F_a_vWE_Q_q_t9G5_4wg_2 __pyx_string_tab[1389]
#define __pyx_kp_b_iso88591_T_4vT_a_G1F_a_vWE_Q_q_t9G5_4xwe __pyx_string_tab[1390]
#define __pyx_kp_b_iso88591_T_4vT_hd_G1F_a_vWE_Q_q_t9G5_4xw __pyx_string_tab[1391]
#define __pyx_kp_b_iso88591_T_4vT_t1_G1F_a_vWE_Q_q_t9G5_4uG __pyx_string_tab[1392]
#define __pyx_kp_b_iso88591_T_4y_F_a_G1F_a_vWE_Q_q_t9G5_4xw __pyx_string_tab[1393]
#define __pyx_kp_b_iso88591_T_9_4_Z_ddhhqquu_B_B_K_K_O_O_a __pyx_string_tab[1394]
#define __pyx_kp_b_iso88591_T_9_4_Z_ddhhqquu_B_B_K_K_O_O_a_2 __pyx_string_tab[1395]
#define __pyx_kp_b_iso88591_T_9_4_Z_ddhhqquu_C_C_Q_Q_U_U_d __pyx_string_tab[1396]
#define __pyx_kp_b_iso88591_T_9_4vUYYddhhnnrr_I_I_M_M_____j __pyx_string_tab[1397]
#define __pyx_kp_b_iso88591_T_9_4vUYYddhhssww_B_B_K_K_O_O_X __pyx_string_tab[1398]
#define __pyx_kp_b_iso88591_T_D_0_F_it_VZZ_G1F_a_vWE_Q_q_t __pyx_string_tab[1399]
#define __pyx_kp_b_iso88591_T_D_T_fD_tST_G1F_a_vWE_Q_q_t_WE __pyx_string_tab[1400]
#define __pyx_kp_b_iso88591_T_D_V4wd_G1F_a_vWE_Q_q_t_WE_D_g __pyx_string_tab[1401]
#define __pyx_kp_b_iso88591_T_D__D_d_QUU_bbc_G1F_a_vWE_Q_q __pyx_string_tab[1402]
#define __pyx_kp_b_iso88591_T_D_d_4_D_tST_G1F_a_vWE_Q_q_t_W __pyx_string_tab[1403]
#define __pyx_kp_b_iso88591_T_D_d_4_a_G1F_a_vWE_Q_q_t_WE_D __pyx_string_tab[1404]
#define __pyx_kp_b_iso88591_T_D_d_4y_F_kY_ffjjsswwx_G1F_a_v __pyx_string_tab[1405]
#define __pyx_kp_b_iso88591_T_D_d_4y_KtS_a_G1F_a_vWE_Q_q_t8 __pyx_string_tab[1406]
#define __pyx_kp_b_iso88591_T_D_d_4y_KtS_a_G1F_a_vWE_Q_q_t8_2 __pyx_string_tab[1407]
#define __pyx_kp_b_iso88591_T_F_fD_G1F_a_vWE_Q_q_t6_S_E_S_H __pyx_string_tab[1408]
#define __pyx_kp_b_iso88591_T_G1F_a_vWE_Q_q_t87_q_t1G_gQ_t1 __pyx_string_tab[1409]
#define __pyx_kp_b_iso88591_T_Jd_A_G1F_a_vWE_Q_q_t6_S_IWE_D __pyx_string_tab[1410]
#define __pyx_kp_b_iso88591_T_Kt_IT_G1F_a_vWE_Q_q_t_we3d_q __pyx_string_tab[1411]
#define __pyx_kp_b_iso88591_T_V4y_IT_G1F_a_vWE_Q_q_t7_c_XWE __pyx_string_tab[1412]
#define __pyx_kp_b_iso88591_T_d_HD_PTTU_G1F_a_vWE_Q_q_t_we3 __pyx_string_tab[1413]
#define __pyx_kp_b_iso88591_T_d_IT_D_G1F_a_vWE_Q_q_t_we3d_c __pyx_string_tab[1414]
#define __pyx_kp_b_iso88591_T_d_IT_D_G1F_a_vWE_Q_q_t_we3d_c_2 __pyx_string_tab[1415]
#define __pyx_kp_b_iso88591_T_fD_WD_A_G1F_a_vWE_Q_q_t87_s_h __pyx_string_tab[1416]
#define __pyx_kp_b_iso88591_T_fD_t1_G1F_a_vWE_Q_q_t87_s_fG5 __pyx_string_tab[1417]
#define __pyx_kp_b_iso88591_T_fD_t1_G1F_a_vWE_Q_q_t87_s_fG5_2 __pyx_string_tab[1418]
#define __pyx_kp_b_iso88591_T_it6_WD_Q_G1F_a_vWE_Q_q_t87_s __pyx_string_tab[1419]
#define __pyx_kp_b_iso88591_T_k_V4vT_hVZZbbffg_G1F_a_vWE_Q __pyx_string_tab[1420]
#define __pyx_kp_b_iso88591_T_t1_G1F_a_vWE_Q_q_t87_q_T_G1_T __pyx_string_tab[1421]
#define __pyx_kp_b_iso88591_T_t6_WD_A_G1F_a_vWE_Q_q_t_uCt6 __pyx_string_tab[1422]
#define __pyx_kp_b_iso88591_T_t6_Yd_G1F_a_vWE_Q_q_t_uCt87_s __pyx_string_tab[1423]
#define __pyx_kp_b_iso88591_T_t6_Yd_G1F_a_vWE_Q_q_t_uCt87_s_2 __pyx_string_tab[1424]
#define __pyx_kp_b_iso88591_T_t6_Yd_G1F_a_vWE_Q_q_t_uCt87_s_3 __pyx_string_tab[1425]
#define __pyx_kp_b_iso88591_T_t7_a_G1F_a_vWE_Q_q_t6_S_HG1_q __pyx_string_tab[1426]
#define __pyx_kp_b_iso88591_T_t7_a_G1F_a_vWE_Q_q_t6_S_HG1_q_2 __pyx_string_tab[1427]
#define __pyx_kp_b_iso88591_T_t7_a_G1F_a_vWE_Q_q_t6_S_HG1_q_3 __pyx_string_tab[1428]
#define __pyx_kp_b_iso88591_T_t7_it1_G1F_a_vWE_Q_q_t6_S_HG1 __pyx_string_tab[1429]
#define __pyx_kp_b_iso88591_T_t9D_tCUUYY__cciimmxx_F_F_J_J __pyx_string_tab[1430]
#define __pyx_kp_b_iso88591_T_t_d_A_G1F_a_vWE_Q_q_t_0_uCt_W __pyx_string_tab[1431]
#define __pyx_kp_b_iso88591_T_t_d_IT_kY_ffjjsswwx_G1F_a_vWE __pyx_string_tab[1432]
#define __pyx_kp_b_iso88591_YfDPRRTTXXYYZ __pyx_string_tab[1433]
#define __pyx_kp_b_iso88591__42 __pyx_string_tab[1434]
#define __pyx_kp_b_iso88591__43 __pyx_string_tab[1435]
#define __pyx_kp_b_iso88591__44 __pyx_string_tab[1436]
#define __pyx_kp_b_iso88591__45 __pyx_string_tab[1437]
#define __pyx_kp_b_iso88591__46 __pyx_string_tab[1438]
#define __pyx_kp_b_iso88591__48 __pyx_string_tab[1439]
#define __pyx_kp_b_iso88591__49 __pyx_string_tab[1440]
#define __pyx_kp_b_iso88591__50 __pyx_string_tab[1441]
#define __pyx_kp_b_iso88591__51 __pyx_string_tab[1442]
#define __pyx_kp_b_iso88591_a __pyx_string_tab[1443]
#define __pyx_kp_b_iso88591_a_2 __pyx_string_tab[1444]
#define __pyx_kp_b_iso88591_a_E_V1_r_E_V4uCt1AXQ_q_E__A_r_A __pyx_string_tab[1445]
#define __pyx_kp_b_iso88591_a_E_V1_r_E_V4uCt1AXQ_q_k_AQ __pyx_string_tab[1446]
#define __pyx_kp_b_iso88591_avQ __pyx_string_tab[1447]
#define __pyx_kp_b_iso88591_avQ_2 __pyx_string_tab[1448]
#define __pyx_kp_b_iso88591_b_1 __pyx_string_tab[1449]
#define __pyx_kp_b_iso88591_b_4 __pyx_string_tab[1450]
#define __pyx_kp_b_iso88591_l_6_Rr_Qa __pyx_string_tab[1451]
#define __pyx_kp_b_iso88591_q __pyx_string_tab[1452]
#define __pyx_kp_b_iso88591_q_0_kQR_4xq_7_awnA_1 __pyx_string_tab[1453]
#define __pyx_kp_b_iso88591_q_0_kQR_5_7_q_a_1 __pyx_string_tab[1454]
#define __pyx_kp_b_iso88591_q_0_kQR_6_7_1 __pyx_string_tab[1455]
#define __pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1 __pyx_string_tab[1456]
#define __pyx_kp_b_iso88591_q_0_kQR_7_1_7_N_1 __pyx_string_tab[1457]
#define __pyx_kp_b_iso88591_q_0_kQR_7_q0_a_1 __pyx_string_tab[1458]
#define __pyx_kp_b_iso88591_q_0_kQR_81A_7_2_3FnTU_1 __pyx_string_tab[1459]
#define __pyx_kp_b_iso88591_q_0_kQR_81A_7_VVdde_1 __pyx_string_tab[1460]
#define __pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1 __pyx_string_tab[1461]
#define __pyx_kp_b_iso88591_q_0_kQR_9HAQ_7_1L_a_1 __pyx_string_tab[1462]
#define __pyx_kp_b_iso88591_q_0_kQR_XQa_7_4A5J_XY_1 __pyx_string_tab[1463]
#define __pyx_kp_b_iso88591_q_0_kQR_XQa_7_A_1 __pyx_string_tab[1464]
#define __pyx_kp_b_iso88591_q_0_kQR_haq_7_5Q6LNZ_1 __pyx_string_tab[1465]
#define __pyx_kp_b_iso88591_q_0_kQR_haq_7_QnN_1 __pyx_string_tab[1466]
#define __pyx_kp_b_iso88591_q_0_kQR_xq_7_6a7Nn_1 __pyx_string_tab[1467]
#define __pyx_kp_b_iso88591_q_0_kQR_xq_7_a_nA_1 __pyx_string_tab[1468]
#define __pyx_kp_b_iso88591_q_a __pyx_string_tab[1469]
#define __pyx_kp_b_iso88591_r_A __pyx_string_tab[1470]
#define __pyx_kp_b_iso88591_r_Q __pyx_string_tab[1471]
#define __pyx_int_0 __pyx_number_tab[0]
#define __pyx_int_1 __pyx_number_tab[1]
#define __pyx_int_2 __pyx_number_tab[2]
#define __pyx_int_3 __pyx_number_tab[3]
#define __pyx_int_4 __pyx_number_tab[4]
#define __pyx_int_5 __pyx_number_tab[5]
#define __pyx_int_6 __pyx_number_tab[6]
#define __pyx_int_7 __pyx_number_tab[7]
#define __pyx_int_65535 __pyx_number_tab[8]
#define __pyx_int_721188 __pyx_number_tab[9]
#define __pyx_int_1001054 __pyx_number_tab[10]
#define __pyx_int_7648235 __pyx_number_tab[11]
#define __pyx_int_25911488 __pyx_number_tab[12]
#define __pyx_int_36498167 __pyx_number_tab[13]
#define __pyx_int_38393670 __pyx_number_tab[14]
#define __pyx_int_49956226 __pyx_number_tab[15]
#define __pyx_int_55859843 __pyx_number_tab[16]
#define __pyx_int_74644840 __pyx_number_tab[17]
#define __pyx_int_77647382 __pyx_number_tab[18]
#define __pyx_int_79980051 __pyx_number_tab[19]
#define __pyx_int_80024921 __pyx_number_tab[20]
#define __pyx_int_84791606 __pyx_number_tab[21]
#define __pyx_int_95473297 __pyx_number_tab[22]
#define __pyx_int_101517009 __pyx_number_tab[23]
#define __pyx_int_108645986 __pyx_number_tab[24]
#define __pyx_int_109439038 __pyx_number_tab[25]
#define __pyx_int_110864280 __pyx_number_tab[26]
#define __pyx_int_111047890 __pyx_number_tab[27]
#define __pyx_int_122555514 __pyx_number_tab[28]
#define __pyx_int_129638214 __pyx_number_tab[29]
#define __pyx_int_136528173 __pyx_number_tab[30]
#define __pyx_int_146351514 __pyx_number_tab[31]
#define __pyx_int_150259718 __pyx_number_tab[32]
#define __pyx_int_151967487 __pyx_number_tab[33]
#define __pyx_int_155722602 __pyx_number_tab[34]
#define __pyx_int_158379213 __pyx_number_tab[35]
#define __pyx_int_161488655 __pyx_number_tab[36]
#define __pyx_int_162076439 __pyx_number_tab[37]
#define __pyx_int_165129497 __pyx_number_tab[38]
#define __pyx_int_167329159 __pyx_number_tab[39]
#define __pyx_int_170597079 __pyx_number_tab[40]
#define __pyx_int_187956686 __pyx_number_tab[41]
#define __pyx_int_190901739 __pyx_number_tab[42]
#define __pyx_int_196785206 __pyx_number_tab[43]
#define __pyx_int_217670872 __pyx_number_tab[44]
#define __pyx_int_221869336 __pyx_number_tab[45]
#define __pyx_int_222070849 __pyx_number_tab[46]
#define __pyx_int_222516709 __pyx_number_tab[47]
#define __pyx_int_234067360 __pyx_number_tab[48]
#define __pyx_int_236560182 __pyx_number_tab[49]
#define __pyx_int_238750788 __pyx_number_tab[50]
#define __pyx_int_238814246 __pyx_number_tab[51]
#define __pyx_int_243009123 __pyx_number_tab[52]
#define __pyx_int_253368434 __pyx_number_tab[53]
#define __pyx_int_256063553 __pyx_number_tab[54]
/* #### Code section: module_state_clear ### */
#if CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {
  __pyx_mstatetype *clear_module_state = __Pyx_PyModule_GetState(m);
  if (!clear_module_state) return 0;
  Py_CLEAR(clear_module_state->__pyx_d);
  Py_CLEAR(clear_module_state->__pyx_b);
  Py_CLEAR(clear_module_state->__pyx_cython_runtime);
  Py_CLEAR(clear_module_state->__pyx_empty_tuple);
  Py_CLEAR(clear_module_state->__pyx_empty_bytes);
  Py_CLEAR(clear_module_state->__pyx_empty_unicode);
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __Pyx_State_RemoveModule(NULL);
  #endif
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_FileContexts);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_FileContexts);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_GenfsFiletype);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_GenfsFiletype);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_GenfsconIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_GenfsconIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_PolicyObject);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_PolicyObject);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Range);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Range);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_BaseMLSLevel);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_BaseMLSLevel);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Level);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Level);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_LevelDecl);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_LevelDecl);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Default);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Default);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_DefaultRange);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_DefaultRange);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Context);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Context);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_ConstraintExprNode);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_ConstraintExprNode);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_ConstraintExpression);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_ConstraintExpression);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_BaseConstraint);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_BaseConstraint);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Validatetrans);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Validatetrans);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Constraint);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Constraint);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Bounds);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Bounds);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_ConditionalOperator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_ConditionalOperator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Conditional);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Conditional);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_PolicySymbol);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_PolicySymbol);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_ObjClass);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_ObjClass);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Common);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Common);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Sensitivity);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Sensitivity);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Category);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Category);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Boolean);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Boolean);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Ocontext);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Ocontext);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Portcon);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Portcon);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Nodecon);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Nodecon);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Netifcon);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Netifcon);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Ibpkeycon);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Ibpkeycon);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Ibendportcon);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Ibendportcon);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_InitialSID);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_InitialSID);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Genfscon);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Genfscon);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_FSUse);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_FSUse);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_PolicyIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_PolicyIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_PermissionVectorIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_ConstraintExprIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_ConstraintIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_ConstraintIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_ValidatetransIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_ValidatetransIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_ConditionalExprIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_ConditionalIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_ConditionalIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_EbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_EbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_CategoryEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_HashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_HashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_ObjClassHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_CommonHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_MLSRuleIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_MLSRuleIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_SensitivityHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_CategoryHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_TypeboundsIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_TypeboundsIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_BooleanHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_OcontextIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_OcontextIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_PortconIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_PortconIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_NodeconIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_NodeconIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_NetifconIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_NetifconIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_IbpkeyconIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_IbendportconIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_IbendportconIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_InitialSIDIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_InitialSIDIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_GenfsconOcontextIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_FSUseIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_FSUseIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_PolicyCapability);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_PolicyCapability);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_PolicyCapabilityIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_RoleAllowIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_RoleAllowIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_RoleTransitionIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Role);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Role);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_RoleHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_RoleEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_PolicyRule);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_PolicyRule);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_RoleTransition);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_RoleTransition);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_RoleAllow);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_RoleAllow);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_MLSRule);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_MLSRule);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_SELinuxPolicy);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_SELinuxPolicy);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_BaseTERule);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_BaseTERule);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_AVRule);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_AVRule);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_XpermSet);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_XpermSet);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_IoctlSet);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_IoctlSet);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_AVRuleXperm);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_AVRuleXperm);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_TERule);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_TERule);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_FileNameTERule);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_FileNameTERule);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_TERuleIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_TERuleIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_ConditionalTERuleIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_FileNameTERuleIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_BaseType);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_BaseType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Type);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_TypeAttribute);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_TypeAttribute);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_TypeHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_TypeEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_User);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_User);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_UserHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_UserHashtabIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_UserEbitmapIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Devicetreecon);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Devicetreecon);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Iomemcon);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Iomemcon);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Ioportcon);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Ioportcon);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Pcidevicecon);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Pcidevicecon);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_Pirqcon);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_Pirqcon);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_DevicetreeconIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_IomemconIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_IomemconIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_IoportconIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_IoportconIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_PcideviceconIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_PcideviceconIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep_PirqconIterator);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep_PirqconIterator);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_defaults);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_defaults);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct__genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_2_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_5_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_8_expand);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_9_expand);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_12_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_13_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_14_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_16_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_18_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_20_defaults);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_21_terules);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_22_constraints);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_24_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_26_expand);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_28_expand);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_29_expand);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_30_expand);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_31_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_32_expand);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_33_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_35_genexpr);
  Py_CLEAR(clear_module_state->__pyx_k__15);
  for (int i=0; i<4; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); }
  for (int i=0; i<473; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); }
  for (int i=0; i<1472; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); }
  for (int i=0; i<55; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); }
/* #### Code section: module_state_clear_contents ### */
/* CommonTypesMetaclass.module_state_clear */
Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType);

/* CythonFunctionShared.module_state_clear */
Py_CLEAR(clear_module_state->__pyx_CyFunctionType);

/* Generator.module_state_clear */
Py_CLEAR(clear_module_state->__pyx_GeneratorType);

/* #### Code section: module_state_clear_end ### */
return 0;
}
#endif
/* #### Code section: module_state_traverse ### */
#if CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
  __pyx_mstatetype *traverse_module_state = __Pyx_PyModule_GetState(m);
  if (!traverse_module_state) return 0;
  Py_VISIT(traverse_module_state->__pyx_d);
  Py_VISIT(traverse_module_state->__pyx_b);
  Py_VISIT(traverse_module_state->__pyx_cython_runtime);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_tuple);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_FileContexts);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_FileContexts);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_GenfsFiletype);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_GenfsFiletype);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_GenfsconIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_GenfsconIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_PolicyObject);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_PolicyObject);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Range);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Range);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_BaseMLSLevel);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_BaseMLSLevel);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Level);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Level);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_LevelDecl);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_LevelDecl);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Default);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Default);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_DefaultRange);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_DefaultRange);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Context);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Context);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_ConstraintExprNode);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_ConstraintExprNode);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_ConstraintExpression);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_ConstraintExpression);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_BaseConstraint);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_BaseConstraint);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Validatetrans);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Validatetrans);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Constraint);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Constraint);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Bounds);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Bounds);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_ConditionalOperator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_ConditionalOperator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Conditional);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Conditional);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_PolicySymbol);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_PolicySymbol);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_ObjClass);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_ObjClass);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Common);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Common);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Sensitivity);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Sensitivity);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Category);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Category);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Boolean);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Boolean);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Ocontext);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Ocontext);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Portcon);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Portcon);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Nodecon);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Nodecon);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Netifcon);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Netifcon);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Ibpkeycon);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Ibpkeycon);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Ibendportcon);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Ibendportcon);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_InitialSID);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_InitialSID);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Genfscon);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Genfscon);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_FSUse);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_FSUse);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_PolicyIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_PolicyIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_PermissionVectorIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_ConstraintExprIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_ConstraintIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_ConstraintIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_ValidatetransIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_ValidatetransIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_ConditionalExprIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_ConditionalIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_ConditionalIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_EbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_EbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_CategoryEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_HashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_HashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_ObjClassHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_CommonHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_MLSRuleIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_MLSRuleIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_SensitivityHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_CategoryHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_TypeboundsIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_TypeboundsIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_BooleanHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_OcontextIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_OcontextIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_PortconIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_PortconIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_NodeconIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_NodeconIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_NetifconIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_NetifconIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_IbpkeyconIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_IbendportconIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_IbendportconIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_InitialSIDIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_InitialSIDIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_GenfsconOcontextIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_FSUseIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_FSUseIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_PolicyCapability);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_PolicyCapability);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_PolicyCapabilityIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_RoleAllowIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_RoleAllowIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_RoleTransitionIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Role);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Role);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_RoleHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_RoleEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_PolicyRule);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_PolicyRule);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_RoleTransition);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_RoleTransition);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_RoleAllow);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_RoleAllow);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_MLSRule);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_MLSRule);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_SELinuxPolicy);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_SELinuxPolicy);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_BaseTERule);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_BaseTERule);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_AVRule);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_AVRule);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_XpermSet);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_XpermSet);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_IoctlSet);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_IoctlSet);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_AVRuleXperm);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_AVRuleXperm);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_TERule);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_TERule);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_FileNameTERule);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_FileNameTERule);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_TERuleIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_TERuleIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_ConditionalTERuleIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_FileNameTERuleIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_BaseType);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_BaseType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Type);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_TypeAttribute);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_TypeAttribute);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_TypeHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_TypeEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_User);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_User);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_UserHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_UserHashtabIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_UserEbitmapIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Devicetreecon);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Devicetreecon);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Iomemcon);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Iomemcon);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Ioportcon);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Ioportcon);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Pcidevicecon);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Pcidevicecon);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_Pirqcon);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_Pirqcon);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_DevicetreeconIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_IomemconIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_IomemconIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_IoportconIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_IoportconIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_PcideviceconIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_PcideviceconIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep_PirqconIterator);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep_PirqconIterator);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_defaults);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_defaults);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct__genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_2_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_5_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_8_expand);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_9_expand);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_12_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_13_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_14_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_16_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_18_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_20_defaults);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_21_terules);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_22_constraints);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_24_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_26_expand);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_28_expand);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_29_expand);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_30_expand);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_31_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_32_expand);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_33_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_7setools_9policyrep___pyx_scope_struct_35_genexpr);
  Py_VISIT(traverse_module_state->__pyx_k__15);
  for (int i=0; i<4; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); }
  for (int i=0; i<473; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); }
  for (int i=0; i<1472; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); }
  for (int i=0; i<55; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); }
/* #### Code section: module_state_traverse_contents ### */
/* CommonTypesMetaclass.module_state_traverse */
Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType);

/* CythonFunctionShared.module_state_traverse */
Py_VISIT(traverse_module_state->__pyx_CyFunctionType);

/* Generator.module_state_traverse */
Py_VISIT(traverse_module_state->__pyx_GeneratorType);

/* #### Code section: module_state_traverse_end ### */
return 0;
}
#endif
/* #### Code section: module_code ### */

/* "setools/policyrep/util.pxi":19
 *     """
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_1__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyEnum_1__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyEnum_1__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_1__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 19, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 19, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(1, 19, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(1, 19, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 19, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 19, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyEnum___str__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum___str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/util.pxi":20
 * 
 *     def __str__(self):
 *         return self.name             # <<<<<<<<<<<<<<
 * 
 *     def __format__(self, spec):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":19
 *     """
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":22
 *         return self.name
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         if not spec:
 *             return self.name
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_3__format__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyEnum_3__format__ = {"__format__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyEnum_3__format__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_3__format__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_spec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__format__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_spec,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 22, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 22, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 22, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__format__", 0) < (0)) __PYX_ERR(1, 22, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__format__", 1, 2, 2, i); __PYX_ERR(1, 22, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 22, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 22, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_spec = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__format__", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 22, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__format__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyEnum_2__format__(__pyx_self, __pyx_v_self, __pyx_v_spec);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_2__format__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_spec) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__format__", 0);

  /* "setools/policyrep/util.pxi":23
 * 
 *     def __format__(self, spec):
 *         if not spec:             # <<<<<<<<<<<<<<
 *             return self.name
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_spec); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 23, __pyx_L1_error)
  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "setools/policyrep/util.pxi":24
 *     def __format__(self, spec):
 *         if not spec:
 *             return self.name             # <<<<<<<<<<<<<<
 *         else:
 *             return super(PolicyEnum, self).__format__(spec)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/util.pxi":23
 * 
 *     def __format__(self, spec):
 *         if not spec:             # <<<<<<<<<<<<<<
 *             return self.name
 *         else:
*/
  }

  /* "setools/policyrep/util.pxi":26
 *             return self.name
 *         else:
 *             return super(PolicyEnum, self).__format__(spec)             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 26, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_v_self};
      __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 26, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }
    __pyx_t_4 = __pyx_t_5;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_8 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_spec};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 26, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/util.pxi":22
 *         return self.name
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         if not spec:
 *             return self.name
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__format__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":28
 *             return super(PolicyEnum, self).__format__(spec)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return super(PolicyEnum, self).__eq__(other)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_5__eq__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyEnum_5__eq__ = {"__eq__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyEnum_5__eq__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_5__eq__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_other = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_other,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 28, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 28, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 28, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__eq__", 0) < (0)) __PYX_ERR(1, 28, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__eq__", 1, 2, 2, i); __PYX_ERR(1, 28, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 28, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 28, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_other = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__eq__", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 28, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyEnum_4__eq__(__pyx_self, __pyx_v_self, __pyx_v_other);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_4__eq__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/util.pxi":29
 * 
 *     def __eq__(self, other):
 *         return super(PolicyEnum, self).__eq__(other)             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_self};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 29, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_other};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_eq, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 29, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":28
 *             return super(PolicyEnum, self).__format__(spec)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return super(PolicyEnum, self).__eq__(other)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":31
 *         return super(PolicyEnum, self).__eq__(other)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_7__hash__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyEnum_7__hash__ = {"__hash__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyEnum_7__hash__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_7__hash__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 31, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 31, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__hash__", 0) < (0)) __PYX_ERR(1, 31, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__hash__", 1, 1, 1, i); __PYX_ERR(1, 31, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 31, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__hash__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 31, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyEnum_6__hash__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_6__hash__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/util.pxi":32
 * 
 *     def __hash__(self):
 *         return hash(self.name)             # <<<<<<<<<<<<<<
 * 
 *     @classmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(1, 32, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyLong_FromHash_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":31
 *         return super(PolicyEnum, self).__eq__(other)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":34
 *         return hash(self.name)
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def lookup(cls, value):
 *         """Look up an enumeration by name or value."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_9lookup(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_10PolicyEnum_8lookup, "Look up an enumeration by name or value.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyEnum_9lookup = {"lookup", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyEnum_9lookup, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_10PolicyEnum_8lookup};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_9lookup(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_cls = 0;
  PyObject *__pyx_v_value = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cls,&__pyx_mstate_global->__pyx_n_u_value,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 34, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 34, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 34, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup", 0) < (0)) __PYX_ERR(1, 34, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup", 1, 2, 2, i); __PYX_ERR(1, 34, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 34, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 34, __pyx_L3_error)
    }
    __pyx_v_cls = values[0];
    __pyx_v_value = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 34, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyEnum_8lookup(__pyx_self, __pyx_v_cls, __pyx_v_value);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_8lookup(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  size_t __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup", 0);

  /* "setools/policyrep/util.pxi":38
 *         """Look up an enumeration by name or value."""
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls[value]
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/util.pxi":39
 * 
 *         try:
 *             return cls[value]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             return cls(value)
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_cls, __pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 39, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/util.pxi":38
 *         """Look up an enumeration by name or value."""
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls[value]
 *         except KeyError:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "setools/policyrep/util.pxi":40
 *         try:
 *             return cls[value]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             return cls(value)
 * 
*/
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_5) {
      __Pyx_AddTraceback("setools.policyrep.PolicyEnum.lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 40, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "setools/policyrep/util.pxi":41
 *             return cls[value]
 *         except KeyError:
 *             return cls(value)             # <<<<<<<<<<<<<<
 * 
 * class WeakKeyDefaultDict(weakref.WeakKeyDictionary):
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = NULL;
      __Pyx_INCREF(__pyx_v_cls);
      __pyx_t_10 = __pyx_v_cls; 
      __pyx_t_11 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
        assert(__pyx_t_9);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
        __pyx_t_11 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_value};
        __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 41, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
      }
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/util.pxi":38
 *         """Look up an enumeration by name or value."""
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls[value]
 *         except KeyError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/util.pxi":34
 *         return hash(self.name)
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def lookup(cls, value):
 *         """Look up an enumeration by name or value."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":55
 *     """
 * 
 *     def __init__(self, default_factory, *args):             # <<<<<<<<<<<<<<
 *         self.default_factory = default_factory
 *         super().__init__(args)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_default_factory = 0;
  PyObject *__pyx_v_args = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 2, __pyx_nargs);
  if (unlikely(!__pyx_v_args)) {
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __Pyx_GOTREF(__pyx_v_args);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_default_factory,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 55, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        default:
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 55, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 55, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      const Py_ssize_t used_pos_args = (kwd_pos_args < 2) ? kwd_pos_args : 2;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, used_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(1, 55, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 2, i); __PYX_ERR(1, 55, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs < 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 55, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 55, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_default_factory = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 2, __pyx_nargs); __PYX_ERR(1, 55, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict___init__(__pyx_self, __pyx_v_self, __pyx_v_default_factory, __pyx_v_args);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_default_factory, PyObject *__pyx_v_args) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "setools/policyrep/util.pxi":56
 * 
 *     def __init__(self, default_factory, *args):
 *         self.default_factory = default_factory             # <<<<<<<<<<<<<<
 *         super().__init__(args)
 * 
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_default_factory, __pyx_v_default_factory) < (0)) __PYX_ERR(1, 56, __pyx_L1_error)

  /* "setools/policyrep/util.pxi":57
 *     def __init__(self, default_factory, *args):
 *         self.default_factory = default_factory
 *         super().__init__(args)             # <<<<<<<<<<<<<<
 * 
 *     def __getitem__(self, key):
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = __Pyx_CyFunction_GetClassObj(__pyx_self);
  if (!__pyx_t_5) { PyErr_SetString(PyExc_RuntimeError, "super(): empty __class__ cell"); __PYX_ERR(1, 57, __pyx_L1_error) }
  __Pyx_INCREF(__pyx_t_5);
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_self};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 57, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_args};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_init, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 57, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":55
 *     """
 * 
 *     def __init__(self, default_factory, *args):             # <<<<<<<<<<<<<<
 *         self.default_factory = default_factory
 *         super().__init__(args)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":59
 *         super().__init__(args)
 * 
 *     def __getitem__(self, key):             # <<<<<<<<<<<<<<
 *         try:
 *             return super().__getitem__(key)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_3__getitem__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_3__getitem__ = {"__getitem__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_3__getitem__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_3__getitem__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_key,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 59, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 59, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 59, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__getitem__", 0) < (0)) __PYX_ERR(1, 59, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, i); __PYX_ERR(1, 59, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 59, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 59, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 59, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_2__getitem__(__pyx_self, __pyx_v_self, __pyx_v_key);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__getitem__", 0);

  /* "setools/policyrep/util.pxi":60
 * 
 *     def __getitem__(self, key):
 *         try:             # <<<<<<<<<<<<<<
 *             return super().__getitem__(key)
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/util.pxi":61
 *     def __getitem__(self, key):
 *         try:
 *             return super().__getitem__(key)             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             return self.__missing__(key)
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_7 = NULL;
      __pyx_t_8 = __Pyx_CyFunction_GetClassObj(__pyx_self);
      if (!__pyx_t_8) { PyErr_SetString(PyExc_RuntimeError, "super(): empty __class__ cell"); __PYX_ERR(1, 61, __pyx_L3_error) }
      __Pyx_INCREF(__pyx_t_8);
      __pyx_t_9 = 1;
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_8, __pyx_v_self};
        __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 61, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_6);
      }
      __pyx_t_5 = __pyx_t_6;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_9 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_key};
        __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_getitem, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 61, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/util.pxi":60
 * 
 *     def __getitem__(self, key):
 *         try:             # <<<<<<<<<<<<<<
 *             return super().__getitem__(key)
 *         except KeyError:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "setools/policyrep/util.pxi":62
 *         try:
 *             return super().__getitem__(key)
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             return self.__missing__(key)
 * 
*/
    __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_10) {
      __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(1, 62, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_5);

      /* "setools/policyrep/util.pxi":63
 *             return super().__getitem__(key)
 *         except KeyError:
 *             return self.__missing__(key)             # <<<<<<<<<<<<<<
 * 
 *     def __missing__(self, key):
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_7 = __pyx_v_self;
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_9 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_key};
        __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_missing, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 63, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
      }
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/util.pxi":60
 * 
 *     def __getitem__(self, key):
 *         try:             # <<<<<<<<<<<<<<
 *             return super().__getitem__(key)
 *         except KeyError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/util.pxi":59
 *         super().__init__(args)
 * 
 *     def __getitem__(self, key):             # <<<<<<<<<<<<<<
 *         try:
 *             return super().__getitem__(key)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":65
 *             return self.__missing__(key)
 * 
 *     def __missing__(self, key):             # <<<<<<<<<<<<<<
 *         if self.default_factory is None:
 *             raise KeyError(key)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_5__missing__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_5__missing__ = {"__missing__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_5__missing__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_5__missing__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__missing__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_key,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 65, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 65, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 65, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__missing__", 0) < (0)) __PYX_ERR(1, 65, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__missing__", 1, 2, 2, i); __PYX_ERR(1, 65, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 65, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 65, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__missing__", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 65, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__missing__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_4__missing__(__pyx_self, __pyx_v_self, __pyx_v_key);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_4__missing__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
  PyObject *__pyx_v_defaultvalue = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__missing__", 0);

  /* "setools/policyrep/util.pxi":66
 * 
 *     def __missing__(self, key):
 *         if self.default_factory is None:             # <<<<<<<<<<<<<<
 *             raise KeyError(key)
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_default_factory); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/util.pxi":67
 *     def __missing__(self, key):
 *         if self.default_factory is None:
 *             raise KeyError(key)             # <<<<<<<<<<<<<<
 * 
 *         defaultvalue = self.default_factory()
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_key};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_KeyError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 67, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 67, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":66
 * 
 *     def __missing__(self, key):
 *         if self.default_factory is None:             # <<<<<<<<<<<<<<
 *             raise KeyError(key)
 * 
*/
  }

  /* "setools/policyrep/util.pxi":69
 *             raise KeyError(key)
 * 
 *         defaultvalue = self.default_factory()             # <<<<<<<<<<<<<<
 *         self.__setitem__(key, defaultvalue)
 *         return defaultvalue
*/
  __pyx_t_3 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_default_factory, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 69, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_defaultvalue = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":70
 * 
 *         defaultvalue = self.default_factory()
 *         self.__setitem__(key, defaultvalue)             # <<<<<<<<<<<<<<
 *         return defaultvalue
 * 
*/
  __pyx_t_3 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_key, __pyx_v_defaultvalue};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_setitem, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":71
 *         defaultvalue = self.default_factory()
 *         self.__setitem__(key, defaultvalue)
 *         return defaultvalue             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_defaultvalue);
  __pyx_r = __pyx_v_defaultvalue;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":65
 *             return self.__missing__(key)
 * 
 *     def __missing__(self, key):             # <<<<<<<<<<<<<<
 *         if self.default_factory is None:
 *             raise KeyError(key)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__missing__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_defaultvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":77
 * # Functions
 * #
 * cdef void sepol_logging_callback(void *varg, sepol.sepol_handle_t * sh, const char *fmt, ...) noexcept:             # <<<<<<<<<<<<<<
 *     """Python logging for sepol log callback."""
 *     cdef:
*/

static void __pyx_f_7setools_9policyrep_sepol_logging_callback(CYTHON_UNUSED void *__pyx_v_varg, CYTHON_UNUSED sepol_handle_t *__pyx_v_sh, char const *__pyx_v_fmt, ...) {
  va_list __pyx_v_args;
  char *__pyx_v_msg;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sepol_logging_callback", 0);

  /* "setools/policyrep/util.pxi":83
 *         char *msg
 * 
 *     va_start(args, fmt)             # <<<<<<<<<<<<<<
 *     if vasprintf(&msg, fmt, args) < 0:
 *         raise MemoryError
*/
  va_start(__pyx_v_args, __pyx_v_fmt);

  /* "setools/policyrep/util.pxi":84
 * 
 *     va_start(args, fmt)
 *     if vasprintf(&msg, fmt, args) < 0:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 *     va_end(args)
*/
  __pyx_t_1 = (vasprintf((&__pyx_v_msg), __pyx_v_fmt, __pyx_v_args) < 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/util.pxi":85
 *     va_start(args, fmt)
 *     if vasprintf(&msg, fmt, args) < 0:
 *         raise MemoryError             # <<<<<<<<<<<<<<
 *     va_end(args)
 * 
*/
    PyErr_NoMemory(); __PYX_ERR(1, 85, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":84
 * 
 *     va_start(args, fmt)
 *     if vasprintf(&msg, fmt, args) < 0:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 *     va_end(args)
*/
  }

  /* "setools/policyrep/util.pxi":86
 *     if vasprintf(&msg, fmt, args) < 0:
 *         raise MemoryError
 *     va_end(args)             # <<<<<<<<<<<<<<
 * 
 *     logging.getLogger("libsepol").debug(msg)
*/
  va_end(__pyx_v_args);

  /* "setools/policyrep/util.pxi":88
 *     va_end(args)
 * 
 *     logging.getLogger("libsepol").debug(msg)             # <<<<<<<<<<<<<<
 *     free(msg)
 * 
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_logging); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_getLogger); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_8 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
    assert(__pyx_t_5);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
    __pyx_t_8 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_libsepol};
    __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  __pyx_t_3 = __pyx_t_4;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_7 = __Pyx_PyUnicode_FromString(__pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_7};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_debug, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":89
 * 
 *     logging.getLogger("libsepol").debug(msg)
 *     free(msg)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  free(__pyx_v_msg);

  /* "setools/policyrep/util.pxi":77
 * # Functions
 * #
 * cdef void sepol_logging_callback(void *varg, sepol.sepol_handle_t * sh, const char *fmt, ...) noexcept:             # <<<<<<<<<<<<<<
 *     """Python logging for sepol log callback."""
 *     cdef:
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_WriteUnraisable("setools.policyrep.sepol_logging_callback", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "setools/policyrep/util.pxi":92
 * 
 * 
 * cdef void ebitmap_set_bit(sepol.ebitmap_t * e, unsigned int bit, int value):             # <<<<<<<<<<<<<<
 *     """
 *     Set a specific bit value in an ebitmap.
*/

static void __pyx_f_7setools_9policyrep_ebitmap_set_bit(ebitmap_t *__pyx_v_e, unsigned int __pyx_v_bit, int __pyx_v_value) {
  ebitmap_node_t *__pyx_v_n;
  ebitmap_node_t *__pyx_v_prev;
  ebitmap_node_t *__pyx_v_new;
  uint32_t __pyx_v_startbit;
  uint32_t __pyx_v_highbit;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  ebitmap_node_t *__pyx_t_8;
  int __pyx_t_9;
  struct ebitmap_node *__pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ebitmap_set_bit", 0);

  /* "setools/policyrep/util.pxi":103
 *         sepol.ebitmap_node_t *prev
 *         sepol.ebitmap_node_t *new
 *         uint32_t startbit = bit & ~(sepol.MAPSIZE - 1)             # <<<<<<<<<<<<<<
 *         uint32_t highbit = startbit + sepol.MAPSIZE
 * 
*/
  __pyx_v_startbit = (__pyx_v_bit & (~(MAPSIZE - 1)));

  /* "setools/policyrep/util.pxi":104
 *         sepol.ebitmap_node_t *new
 *         uint32_t startbit = bit & ~(sepol.MAPSIZE - 1)
 *         uint32_t highbit = startbit + sepol.MAPSIZE             # <<<<<<<<<<<<<<
 * 
 *     if highbit == 0:
*/
  __pyx_v_highbit = (__pyx_v_startbit + MAPSIZE);

  /* "setools/policyrep/util.pxi":106
 *         uint32_t highbit = startbit + sepol.MAPSIZE
 * 
 *     if highbit == 0:             # <<<<<<<<<<<<<<
 *         raise LowLevelPolicyError(f"Bitmap overflow, bit {bit:#06x}")
 * 
*/
  __pyx_t_1 = (__pyx_v_highbit == 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/util.pxi":107
 * 
 *     if highbit == 0:
 *         raise LowLevelPolicyError(f"Bitmap overflow, bit {bit:#06x}")             # <<<<<<<<<<<<<<
 * 
 *     prev = NULL
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_LowLevelPolicyError); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyLong_From_unsigned_int(__pyx_v_bit); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_Format(__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_06x); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Bitmap_overflow_bit, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 107, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(1, 107, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":106
 *         uint32_t highbit = startbit + sepol.MAPSIZE
 * 
 *     if highbit == 0:             # <<<<<<<<<<<<<<
 *         raise LowLevelPolicyError(f"Bitmap overflow, bit {bit:#06x}")
 * 
*/
  }

  /* "setools/policyrep/util.pxi":109
 *         raise LowLevelPolicyError(f"Bitmap overflow, bit {bit:#06x}")
 * 
 *     prev = NULL             # <<<<<<<<<<<<<<
 *     n = e.node;
 *     while n and n.startbit <= bit:
*/
  __pyx_v_prev = NULL;

  /* "setools/policyrep/util.pxi":110
 * 
 *     prev = NULL
 *     n = e.node;             # <<<<<<<<<<<<<<
 *     while n and n.startbit <= bit:
 *         if (n.startbit + sepol.MAPSIZE) > bit:
*/
  __pyx_t_8 = __pyx_v_e->node;
  __pyx_v_n = __pyx_t_8;

  /* "setools/policyrep/util.pxi":111
 *     prev = NULL
 *     n = e.node;
 *     while n and n.startbit <= bit:             # <<<<<<<<<<<<<<
 *         if (n.startbit + sepol.MAPSIZE) > bit:
 *             if value:
*/
  while (1) {
    __pyx_t_9 = (__pyx_v_n != 0);
    if (__pyx_t_9) {
    } else {
      __pyx_t_1 = __pyx_t_9;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_9 = (__pyx_v_n->startbit <= __pyx_v_bit);
    __pyx_t_1 = __pyx_t_9;
    __pyx_L6_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/util.pxi":112
 *     n = e.node;
 *     while n and n.startbit <= bit:
 *         if (n.startbit + sepol.MAPSIZE) > bit:             # <<<<<<<<<<<<<<
 *             if value:
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)
*/
    __pyx_t_1 = ((__pyx_v_n->startbit + MAPSIZE) > __pyx_v_bit);
    if (__pyx_t_1) {

      /* "setools/policyrep/util.pxi":113
 *     while n and n.startbit <= bit:
 *         if (n.startbit + sepol.MAPSIZE) > bit:
 *             if value:             # <<<<<<<<<<<<<<
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)
 *             else:
*/
      __pyx_t_1 = (__pyx_v_value != 0);
      if (__pyx_t_1) {

        /* "setools/policyrep/util.pxi":114
 *         if (n.startbit + sepol.MAPSIZE) > bit:
 *             if value:
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)             # <<<<<<<<<<<<<<
 *             else:
 *                 n.map &= ~(sepol.MAPBIT << (bit - n.startbit))
*/
        __pyx_v_n->map = (__pyx_v_n->map | (MAPBIT << (__pyx_v_bit - __pyx_v_n->startbit)));

        /* "setools/policyrep/util.pxi":113
 *     while n and n.startbit <= bit:
 *         if (n.startbit + sepol.MAPSIZE) > bit:
 *             if value:             # <<<<<<<<<<<<<<
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)
 *             else:
*/
        goto __pyx_L9;
      }

      /* "setools/policyrep/util.pxi":116
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)
 *             else:
 *                 n.map &= ~(sepol.MAPBIT << (bit - n.startbit))             # <<<<<<<<<<<<<<
 *                 if not n.map:
 *                     # drop this node from the bitmap
*/
      /*else*/ {
        __pyx_v_n->map = (__pyx_v_n->map & (~(MAPBIT << (__pyx_v_bit - __pyx_v_n->startbit))));

        /* "setools/policyrep/util.pxi":117
 *             else:
 *                 n.map &= ~(sepol.MAPBIT << (bit - n.startbit))
 *                 if not n.map:             # <<<<<<<<<<<<<<
 *                     # drop this node from the bitmap
 * 
*/
        __pyx_t_1 = (!(__pyx_v_n->map != 0));
        if (__pyx_t_1) {

          /* "setools/policyrep/util.pxi":120
 *                     # drop this node from the bitmap
 * 
 *                     if not n.next:             # <<<<<<<<<<<<<<
 *                         # this was the highest map
 *                         # within the bitmap
*/
          __pyx_t_1 = (!(__pyx_v_n->next != 0));
          if (__pyx_t_1) {

            /* "setools/policyrep/util.pxi":123
 *                         # this was the highest map
 *                         # within the bitmap
 *                         if prev:             # <<<<<<<<<<<<<<
 *                                 e.highbit = prev.startbit + sepol.MAPSIZE
 *                         else:
*/
            __pyx_t_1 = (__pyx_v_prev != 0);
            if (__pyx_t_1) {

              /* "setools/policyrep/util.pxi":124
 *                         # within the bitmap
 *                         if prev:
 *                                 e.highbit = prev.startbit + sepol.MAPSIZE             # <<<<<<<<<<<<<<
 *                         else:
 *                                 e.highbit = 0
*/
              __pyx_v_e->highbit = (__pyx_v_prev->startbit + MAPSIZE);

              /* "setools/policyrep/util.pxi":123
 *                         # this was the highest map
 *                         # within the bitmap
 *                         if prev:             # <<<<<<<<<<<<<<
 *                                 e.highbit = prev.startbit + sepol.MAPSIZE
 *                         else:
*/
              goto __pyx_L12;
            }

            /* "setools/policyrep/util.pxi":126
 *                                 e.highbit = prev.startbit + sepol.MAPSIZE
 *                         else:
 *                                 e.highbit = 0             # <<<<<<<<<<<<<<
 * 
 *                     if prev:
*/
            /*else*/ {
              __pyx_v_e->highbit = 0;
            }
            __pyx_L12:;

            /* "setools/policyrep/util.pxi":120
 *                     # drop this node from the bitmap
 * 
 *                     if not n.next:             # <<<<<<<<<<<<<<
 *                         # this was the highest map
 *                         # within the bitmap
*/
          }

          /* "setools/policyrep/util.pxi":128
 *                                 e.highbit = 0
 * 
 *                     if prev:             # <<<<<<<<<<<<<<
 *                         prev.next = n.next
 *                     else:
*/
          __pyx_t_1 = (__pyx_v_prev != 0);
          if (__pyx_t_1) {

            /* "setools/policyrep/util.pxi":129
 * 
 *                     if prev:
 *                         prev.next = n.next             # <<<<<<<<<<<<<<
 *                     else:
 *                         e.node = n.next
*/
            __pyx_t_10 = __pyx_v_n->next;
            __pyx_v_prev->next = __pyx_t_10;

            /* "setools/policyrep/util.pxi":128
 *                                 e.highbit = 0
 * 
 *                     if prev:             # <<<<<<<<<<<<<<
 *                         prev.next = n.next
 *                     else:
*/
            goto __pyx_L13;
          }

          /* "setools/policyrep/util.pxi":131
 *                         prev.next = n.next
 *                     else:
 *                         e.node = n.next             # <<<<<<<<<<<<<<
 * 
 *                     free(n)
*/
          /*else*/ {
            __pyx_t_10 = __pyx_v_n->next;
            __pyx_v_e->node = __pyx_t_10;
          }
          __pyx_L13:;

          /* "setools/policyrep/util.pxi":133
 *                         e.node = n.next
 * 
 *                     free(n)             # <<<<<<<<<<<<<<
 * 
 *             return
*/
          free(__pyx_v_n);

          /* "setools/policyrep/util.pxi":117
 *             else:
 *                 n.map &= ~(sepol.MAPBIT << (bit - n.startbit))
 *                 if not n.map:             # <<<<<<<<<<<<<<
 *                     # drop this node from the bitmap
 * 
*/
        }
      }
      __pyx_L9:;

      /* "setools/policyrep/util.pxi":135
 *                     free(n)
 * 
 *             return             # <<<<<<<<<<<<<<
 * 
 *         prev = n
*/
      goto __pyx_L0;

      /* "setools/policyrep/util.pxi":112
 *     n = e.node;
 *     while n and n.startbit <= bit:
 *         if (n.startbit + sepol.MAPSIZE) > bit:             # <<<<<<<<<<<<<<
 *             if value:
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)
*/
    }

    /* "setools/policyrep/util.pxi":137
 *             return
 * 
 *         prev = n             # <<<<<<<<<<<<<<
 *         n = n.next
 * 
*/
    __pyx_v_prev = __pyx_v_n;

    /* "setools/policyrep/util.pxi":138
 * 
 *         prev = n
 *         n = n.next             # <<<<<<<<<<<<<<
 * 
 *     if not value:
*/
    __pyx_t_10 = __pyx_v_n->next;
    __pyx_v_n = __pyx_t_10;
  }

  /* "setools/policyrep/util.pxi":140
 *         n = n.next
 * 
 *     if not value:             # <<<<<<<<<<<<<<
 *         return
 * 
*/
  __pyx_t_1 = (!(__pyx_v_value != 0));
  if (__pyx_t_1) {

    /* "setools/policyrep/util.pxi":141
 * 
 *     if not value:
 *         return             # <<<<<<<<<<<<<<
 * 
 *     new = <sepol.ebitmap_node_t*>calloc(1, sizeof(sepol.ebitmap_node_t))
*/
    goto __pyx_L0;

    /* "setools/policyrep/util.pxi":140
 *         n = n.next
 * 
 *     if not value:             # <<<<<<<<<<<<<<
 *         return
 * 
*/
  }

  /* "setools/policyrep/util.pxi":143
 *         return
 * 
 *     new = <sepol.ebitmap_node_t*>calloc(1, sizeof(sepol.ebitmap_node_t))             # <<<<<<<<<<<<<<
 *     if new == NULL:
 *         raise MemoryError
*/
  __pyx_v_new = ((ebitmap_node_t *)calloc(1, (sizeof(ebitmap_node_t))));

  /* "setools/policyrep/util.pxi":144
 * 
 *     new = <sepol.ebitmap_node_t*>calloc(1, sizeof(sepol.ebitmap_node_t))
 *     if new == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 * 
*/
  __pyx_t_1 = (__pyx_v_new == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/util.pxi":145
 *     new = <sepol.ebitmap_node_t*>calloc(1, sizeof(sepol.ebitmap_node_t))
 *     if new == NULL:
 *         raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *     new.startbit = startbit;
*/
    PyErr_NoMemory(); __PYX_ERR(1, 145, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":144
 * 
 *     new = <sepol.ebitmap_node_t*>calloc(1, sizeof(sepol.ebitmap_node_t))
 *     if new == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 * 
*/
  }

  /* "setools/policyrep/util.pxi":147
 *         raise MemoryError
 * 
 *     new.startbit = startbit;             # <<<<<<<<<<<<<<
 *     new.map = sepol.MAPBIT << (bit - new.startbit)
 * 
*/
  __pyx_v_new->startbit = __pyx_v_startbit;

  /* "setools/policyrep/util.pxi":148
 * 
 *     new.startbit = startbit;
 *     new.map = sepol.MAPBIT << (bit - new.startbit)             # <<<<<<<<<<<<<<
 * 
 *     if not n:
*/
  __pyx_v_new->map = (MAPBIT << (__pyx_v_bit - __pyx_v_new->startbit));

  /* "setools/policyrep/util.pxi":150
 *     new.map = sepol.MAPBIT << (bit - new.startbit)
 * 
 *     if not n:             # <<<<<<<<<<<<<<
 *         # this node will be the highest map within the bitmap
 *         e.highbit = highbit
*/
  __pyx_t_1 = (!(__pyx_v_n != 0));
  if (__pyx_t_1) {

    /* "setools/policyrep/util.pxi":152
 *     if not n:
 *         # this node will be the highest map within the bitmap
 *         e.highbit = highbit             # <<<<<<<<<<<<<<
 * 
 *     if prev:
*/
    __pyx_v_e->highbit = __pyx_v_highbit;

    /* "setools/policyrep/util.pxi":150
 *     new.map = sepol.MAPBIT << (bit - new.startbit)
 * 
 *     if not n:             # <<<<<<<<<<<<<<
 *         # this node will be the highest map within the bitmap
 *         e.highbit = highbit
*/
  }

  /* "setools/policyrep/util.pxi":154
 *         e.highbit = highbit
 * 
 *     if prev:             # <<<<<<<<<<<<<<
 *         new.next = prev.next
 *         prev.next = new
*/
  __pyx_t_1 = (__pyx_v_prev != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/util.pxi":155
 * 
 *     if prev:
 *         new.next = prev.next             # <<<<<<<<<<<<<<
 *         prev.next = new
 *     else:
*/
    __pyx_t_10 = __pyx_v_prev->next;
    __pyx_v_new->next = __pyx_t_10;

    /* "setools/policyrep/util.pxi":156
 *     if prev:
 *         new.next = prev.next
 *         prev.next = new             # <<<<<<<<<<<<<<
 *     else:
 *         new.next = e.node
*/
    __pyx_v_prev->next = __pyx_v_new;

    /* "setools/policyrep/util.pxi":154
 *         e.highbit = highbit
 * 
 *     if prev:             # <<<<<<<<<<<<<<
 *         new.next = prev.next
 *         prev.next = new
*/
    goto __pyx_L17;
  }

  /* "setools/policyrep/util.pxi":158
 *         prev.next = new
 *     else:
 *         new.next = e.node             # <<<<<<<<<<<<<<
 *         e.node = new
 * 
*/
  /*else*/ {
    __pyx_t_8 = __pyx_v_e->node;
    __pyx_v_new->next = __pyx_t_8;

    /* "setools/policyrep/util.pxi":159
 *     else:
 *         new.next = e.node
 *         e.node = new             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_v_e->node = __pyx_v_new;
  }
  __pyx_L17:;

  /* "setools/policyrep/util.pxi":92
 * 
 * 
 * cdef void ebitmap_set_bit(sepol.ebitmap_t * e, unsigned int bit, int value):             # <<<<<<<<<<<<<<
 *     """
 *     Set a specific bit value in an ebitmap.
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.ebitmap_set_bit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "setools/policyrep/util.pxi":162
 * 
 * 
 * cdef int hashtab_insert(sepol.hashtab_t h, sepol.hashtab_key_t key, sepol.hashtab_datum_t datum):             # <<<<<<<<<<<<<<
 *     """
 *     Insert a node into a hash table.
*/

static int __pyx_f_7setools_9policyrep_hashtab_insert(hashtab_t __pyx_v_h, hashtab_key_t __pyx_v_key, hashtab_datum_t __pyx_v_datum) {
  int __pyx_v_hvalue;
  hashtab_ptr_t __pyx_v_prev;
  hashtab_ptr_t __pyx_v_cur;
  hashtab_ptr_t __pyx_v_newnode;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  struct hashtab_node *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("hashtab_insert", 0);

  /* "setools/policyrep/util.pxi":173
 *         sepol.hashtab_ptr_t prev, cur, newnode
 * 
 *     hvalue = h.hash_value(h, key)             # <<<<<<<<<<<<<<
 *     prev = NULL
 *     cur = h.htable[hvalue]
*/
  __pyx_v_hvalue = __pyx_v_h->hash_value(__pyx_v_h, __pyx_v_key);

  /* "setools/policyrep/util.pxi":174
 * 
 *     hvalue = h.hash_value(h, key)
 *     prev = NULL             # <<<<<<<<<<<<<<
 *     cur = h.htable[hvalue]
 *     while cur and h.keycmp(h, key, cur.key) > 0:
*/
  __pyx_v_prev = NULL;

  /* "setools/policyrep/util.pxi":175
 *     hvalue = h.hash_value(h, key)
 *     prev = NULL
 *     cur = h.htable[hvalue]             # <<<<<<<<<<<<<<
 *     while cur and h.keycmp(h, key, cur.key) > 0:
 *         prev = cur
*/
  __pyx_v_cur = (__pyx_v_h->htable[__pyx_v_hvalue]);

  /* "setools/policyrep/util.pxi":176
 *     prev = NULL
 *     cur = h.htable[hvalue]
 *     while cur and h.keycmp(h, key, cur.key) > 0:             # <<<<<<<<<<<<<<
 *         prev = cur
 *         cur = cur.next
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_cur != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_2 = (__pyx_v_h->keycmp(__pyx_v_h, __pyx_v_key, __pyx_v_cur->key) > 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/util.pxi":177
 *     cur = h.htable[hvalue]
 *     while cur and h.keycmp(h, key, cur.key) > 0:
 *         prev = cur             # <<<<<<<<<<<<<<
 *         cur = cur.next
 * 
*/
    __pyx_v_prev = __pyx_v_cur;

    /* "setools/policyrep/util.pxi":178
 *     while cur and h.keycmp(h, key, cur.key) > 0:
 *         prev = cur
 *         cur = cur.next             # <<<<<<<<<<<<<<
 * 
 *     if cur and h.keycmp(h, key, cur.key) == 0:
*/
    __pyx_t_3 = __pyx_v_cur->next;
    __pyx_v_cur = __pyx_t_3;
  }

  /* "setools/policyrep/util.pxi":180
 *         cur = cur.next
 * 
 *     if cur and h.keycmp(h, key, cur.key) == 0:             # <<<<<<<<<<<<<<
 *         raise LowLevelPolicyError("Error inserting into hash table.  Key already exists.")
 * 
*/
  __pyx_t_2 = (__pyx_v_cur != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_h->keycmp(__pyx_v_h, __pyx_v_key, __pyx_v_cur->key) == 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L8_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/util.pxi":181
 * 
 *     if cur and h.keycmp(h, key, cur.key) == 0:
 *         raise LowLevelPolicyError("Error inserting into hash table.  Key already exists.")             # <<<<<<<<<<<<<<
 * 
 *     newnode = <sepol.hashtab_ptr_t> calloc(1, sizeof(sepol.hashtab_node_t))
*/
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_LowLevelPolicyError); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Error_inserting_into_hash_table};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 181, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(1, 181, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":180
 *         cur = cur.next
 * 
 *     if cur and h.keycmp(h, key, cur.key) == 0:             # <<<<<<<<<<<<<<
 *         raise LowLevelPolicyError("Error inserting into hash table.  Key already exists.")
 * 
*/
  }

  /* "setools/policyrep/util.pxi":183
 *         raise LowLevelPolicyError("Error inserting into hash table.  Key already exists.")
 * 
 *     newnode = <sepol.hashtab_ptr_t> calloc(1, sizeof(sepol.hashtab_node_t))             # <<<<<<<<<<<<<<
 *     if newnode == NULL:
 *         raise MemoryError
*/
  __pyx_v_newnode = ((hashtab_ptr_t)calloc(1, (sizeof(hashtab_node_t))));

  /* "setools/policyrep/util.pxi":184
 * 
 *     newnode = <sepol.hashtab_ptr_t> calloc(1, sizeof(sepol.hashtab_node_t))
 *     if newnode == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 * 
*/
  __pyx_t_1 = (__pyx_v_newnode == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/util.pxi":185
 *     newnode = <sepol.hashtab_ptr_t> calloc(1, sizeof(sepol.hashtab_node_t))
 *     if newnode == NULL:
 *         raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *     newnode.key = key;
*/
    PyErr_NoMemory(); __PYX_ERR(1, 185, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":184
 * 
 *     newnode = <sepol.hashtab_ptr_t> calloc(1, sizeof(sepol.hashtab_node_t))
 *     if newnode == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 * 
*/
  }

  /* "setools/policyrep/util.pxi":187
 *         raise MemoryError
 * 
 *     newnode.key = key;             # <<<<<<<<<<<<<<
 *     newnode.datum = datum;
 *     if prev:
*/
  __pyx_v_newnode->key = __pyx_v_key;

  /* "setools/policyrep/util.pxi":188
 * 
 *     newnode.key = key;
 *     newnode.datum = datum;             # <<<<<<<<<<<<<<
 *     if prev:
 *         newnode.next = prev.next
*/
  __pyx_v_newnode->datum = __pyx_v_datum;

  /* "setools/policyrep/util.pxi":189
 *     newnode.key = key;
 *     newnode.datum = datum;
 *     if prev:             # <<<<<<<<<<<<<<
 *         newnode.next = prev.next
 *         prev.next = newnode
*/
  __pyx_t_1 = (__pyx_v_prev != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/util.pxi":190
 *     newnode.datum = datum;
 *     if prev:
 *         newnode.next = prev.next             # <<<<<<<<<<<<<<
 *         prev.next = newnode
 *     else:
*/
    __pyx_t_3 = __pyx_v_prev->next;
    __pyx_v_newnode->next = __pyx_t_3;

    /* "setools/policyrep/util.pxi":191
 *     if prev:
 *         newnode.next = prev.next
 *         prev.next = newnode             # <<<<<<<<<<<<<<
 *     else:
 *         newnode.next = h.htable[hvalue]
*/
    __pyx_v_prev->next = __pyx_v_newnode;

    /* "setools/policyrep/util.pxi":189
 *     newnode.key = key;
 *     newnode.datum = datum;
 *     if prev:             # <<<<<<<<<<<<<<
 *         newnode.next = prev.next
 *         prev.next = newnode
*/
    goto __pyx_L11;
  }

  /* "setools/policyrep/util.pxi":193
 *         prev.next = newnode
 *     else:
 *         newnode.next = h.htable[hvalue]             # <<<<<<<<<<<<<<
 *         h.htable[hvalue] = newnode
 * 
*/
  /*else*/ {
    __pyx_v_newnode->next = (__pyx_v_h->htable[__pyx_v_hvalue]);

    /* "setools/policyrep/util.pxi":194
 *     else:
 *         newnode.next = h.htable[hvalue]
 *         h.htable[hvalue] = newnode             # <<<<<<<<<<<<<<
 * 
 *     h.nel += 1
*/
    (__pyx_v_h->htable[__pyx_v_hvalue]) = __pyx_v_newnode;
  }
  __pyx_L11:;

  /* "setools/policyrep/util.pxi":196
 *         h.htable[hvalue] = newnode
 * 
 *     h.nel += 1             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_v_h->nel = (__pyx_v_h->nel + 1);

  /* "setools/policyrep/util.pxi":162
 * 
 * 
 * cdef int hashtab_insert(sepol.hashtab_t h, sepol.hashtab_key_t key, sepol.hashtab_datum_t datum):             # <<<<<<<<<<<<<<
 *     """
 *     Insert a node into a hash table.
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.hashtab_insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":199
 * 
 * 
 * cdef flatten_list(input_list):             # <<<<<<<<<<<<<<
 *     """
 *     Flatten a list with nested lists.
*/

static PyObject *__pyx_f_7setools_9policyrep_flatten_list(PyObject *__pyx_v_input_list) {
  PyObject *__pyx_v_ret = 0;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("flatten_list", 0);

  /* "setools/policyrep/util.pxi":209
 *     [A, B, D, E, C]
 *     """
 *     cdef list ret = []             # <<<<<<<<<<<<<<
 * 
 *     for i in input_list:
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ret = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":211
 *     cdef list ret = []
 * 
 *     for i in input_list:             # <<<<<<<<<<<<<<
 *         if isinstance(i, list):
 *             ret.extend(flatten_list(i))
*/
  if (likely(PyList_CheckExact(__pyx_v_input_list)) || PyTuple_CheckExact(__pyx_v_input_list)) {
    __pyx_t_1 = __pyx_v_input_list; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_input_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 211, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 211, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 211, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 211, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(1, 211, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "setools/policyrep/util.pxi":212
 * 
 *     for i in input_list:
 *         if isinstance(i, list):             # <<<<<<<<<<<<<<
 *             ret.extend(flatten_list(i))
 *         else:
*/
    __pyx_t_5 = PyList_Check(__pyx_v_i); 
    if (__pyx_t_5) {

      /* "setools/policyrep/util.pxi":213
 *     for i in input_list:
 *         if isinstance(i, list):
 *             ret.extend(flatten_list(i))             # <<<<<<<<<<<<<<
 *         else:
 *             ret.append(i)
*/
      __pyx_t_4 = __pyx_f_7setools_9policyrep_flatten_list(__pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 213, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = __Pyx_PyList_Extend(__pyx_v_ret, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 213, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "setools/policyrep/util.pxi":212
 * 
 *     for i in input_list:
 *         if isinstance(i, list):             # <<<<<<<<<<<<<<
 *             ret.extend(flatten_list(i))
 *         else:
*/
      goto __pyx_L5;
    }

    /* "setools/policyrep/util.pxi":215
 *             ret.extend(flatten_list(i))
 *         else:
 *             ret.append(i)             # <<<<<<<<<<<<<<
 * 
 *     return ret
*/
    /*else*/ {
      __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 215, __pyx_L1_error)
    }
    __pyx_L5:;

    /* "setools/policyrep/util.pxi":211
 *     cdef list ret = []
 * 
 *     for i in input_list:             # <<<<<<<<<<<<<<
 *         if isinstance(i, list):
 *             ret.extend(flatten_list(i))
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":217
 *             ret.append(i)
 * 
 *     return ret             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":199
 * 
 * 
 * cdef flatten_list(input_list):             # <<<<<<<<<<<<<<
 *     """
 *     Flatten a list with nested lists.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.flatten_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":220
 * 
 * 
 * def lookup_boolean_name_sub(name):             # <<<<<<<<<<<<<<
 *     """
 *     Read the /etc/selinux/TYPE/booleans.subs_dist file looking
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_1lookup_boolean_name_sub(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_lookup_boolean_name_sub, "\n    Read the /etc/selinux/TYPE/booleans.subs_dist file looking\n    for a record with 'name'.\n    Return the translated name if a corresponding substitution exists,\n    otherwise return the original name.\n    ");
static PyMethodDef __pyx_mdef_7setools_9policyrep_1lookup_boolean_name_sub = {"lookup_boolean_name_sub", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_1lookup_boolean_name_sub, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_lookup_boolean_name_sub};
static PyObject *__pyx_pw_7setools_9policyrep_1lookup_boolean_name_sub(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_boolean_name_sub (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 220, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 220, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_boolean_name_sub", 0) < (0)) __PYX_ERR(1, 220, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_boolean_name_sub", 1, 1, 1, i); __PYX_ERR(1, 220, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 220, __pyx_L3_error)
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_boolean_name_sub", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 220, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.lookup_boolean_name_sub", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_lookup_boolean_name_sub(__pyx_self, __pyx_v_name);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_lookup_boolean_name_sub(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name) {
  char *__pyx_v__name;
  PyObject *__pyx_v_new_name = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  char const *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  char const *__pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_boolean_name_sub", 0);

  /* "setools/policyrep/util.pxi":228
 *     """
 *     cdef:
 *         char *_name = selinux.selinux_boolean_sub(name)             # <<<<<<<<<<<<<<
 *         str new_name = name
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 228, __pyx_L1_error)
  __pyx_v__name = selinux_boolean_sub(__pyx_t_1);

  /* "setools/policyrep/util.pxi":229
 *     cdef:
 *         char *_name = selinux.selinux_boolean_sub(name)
 *         str new_name = name             # <<<<<<<<<<<<<<
 * 
 *     if _name == NULL:
*/
  __pyx_t_2 = __pyx_v_name;
  __Pyx_INCREF(__pyx_t_2);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(1, 229, __pyx_L1_error)
  __pyx_v_new_name = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":231
 *         str new_name = name
 * 
 *     if _name == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 *     # cast "char *" to "str" and free
*/
  __pyx_t_3 = (__pyx_v__name == NULL);
  if (unlikely(__pyx_t_3)) {

    /* "setools/policyrep/util.pxi":232
 * 
 *     if _name == NULL:
 *         raise MemoryError             # <<<<<<<<<<<<<<
 *     # cast "char *" to "str" and free
 *     try:
*/
    PyErr_NoMemory(); __PYX_ERR(1, 232, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":231
 *         str new_name = name
 * 
 *     if _name == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 *     # cast "char *" to "str" and free
*/
  }

  /* "setools/policyrep/util.pxi":234
 *         raise MemoryError
 *     # cast "char *" to "str" and free
 *     try:             # <<<<<<<<<<<<<<
 *         new_name = _name
 *     finally:
*/
  /*try:*/ {

    /* "setools/policyrep/util.pxi":235
 *     # cast "char *" to "str" and free
 *     try:
 *         new_name = _name             # <<<<<<<<<<<<<<
 *     finally:
 *         free(_name)
*/
    __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v__name); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 235, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF_SET(__pyx_v_new_name, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;
  }

  /* "setools/policyrep/util.pxi":237
 *         new_name = _name
 *     finally:
 *         free(_name)             # <<<<<<<<<<<<<<
 * 
 *     return new_name
*/
  /*finally:*/ {
    /*normal exit:*/{
      free(__pyx_v__name);
      goto __pyx_L6;
    }
    __pyx_L5_error:;
    /*exception exit:*/{
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
       __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_12);
      __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename;
      {
        free(__pyx_v__name);
      }
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_XGIVEREF(__pyx_t_12);
      __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
      __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6;
      goto __pyx_L1_error;
    }
    __pyx_L6:;
  }

  /* "setools/policyrep/util.pxi":239
 *         free(_name)
 * 
 *     return new_name             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_new_name);
  __pyx_r = __pyx_v_new_name;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":220
 * 
 * 
 * def lookup_boolean_name_sub(name):             # <<<<<<<<<<<<<<
 *     """
 *     Read the /etc/selinux/TYPE/booleans.subs_dist file looking
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.lookup_boolean_name_sub", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_new_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":28
 *     cdef readonly bint state
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Boolean factory(SELinuxPolicy policy, sepol.cond_bool_datum_t *symbol):
 *         """Factory function for creating Boolean objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_f_7setools_9policyrep_7Boolean_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_bool_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_b = 0;
  struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":31
 *     cdef inline Boolean factory(SELinuxPolicy policy, sepol.cond_bool_datum_t *symbol):
 *         """Factory function for creating Boolean objects."""
 *         cdef Boolean b = Boolean.__new__(Boolean)             # <<<<<<<<<<<<<<
 *         b.policy = policy
 *         b.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Boolean(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Boolean), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 31, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_b = ((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":32
 *         """Factory function for creating Boolean objects."""
 *         cdef Boolean b = Boolean.__new__(Boolean)
 *         b.policy = policy             # <<<<<<<<<<<<<<
 *         b.key = <uintptr_t>symbol
 *         b.name = policy.boolean_value_to_name(symbol.s.value - 1)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_b->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_b->__pyx_base.__pyx_base.policy);
  __pyx_v_b->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/boolcond.pxi":33
 *         cdef Boolean b = Boolean.__new__(Boolean)
 *         b.policy = policy
 *         b.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         b.name = policy.boolean_value_to_name(symbol.s.value - 1)
 *         b.state = <bint>symbol.state
*/
  __pyx_v_b->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/boolcond.pxi":34
 *         b.policy = policy
 *         b.key = <uintptr_t>symbol
 *         b.name = policy.boolean_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 *         b.state = <bint>symbol.state
 *         return b
*/
  __pyx_t_1 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_b->__pyx_base.name);
  __Pyx_DECREF(__pyx_v_b->__pyx_base.name);
  __pyx_v_b->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":35
 *         b.key = <uintptr_t>symbol
 *         b.name = policy.boolean_value_to_name(symbol.s.value - 1)
 *         b.state = <bint>symbol.state             # <<<<<<<<<<<<<<
 *         return b
 * 
*/
  __pyx_v_b->state = (__pyx_v_symbol->state != 0);

  /* "setools/policyrep/boolcond.pxi":36
 *         b.name = policy.boolean_value_to_name(symbol.s.value - 1)
 *         b.state = <bint>symbol.state
 *         return b             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_b);
  __pyx_r = __pyx_v_b;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":28
 *     cdef readonly bint state
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Boolean factory(SELinuxPolicy policy, sepol.cond_bool_datum_t *symbol):
 *         """Factory function for creating Boolean objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Boolean.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_b);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":38
 *         return b
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         """The policy statement."""
 *         return f"bool {self.name} {str(self.state).lower()};"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_7Boolean_statement, "The policy statement.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Boolean_1statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Boolean_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_7Boolean_statement};
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Boolean_statement(((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_statement(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[5];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/boolcond.pxi":40
 *     def statement(self):
 *         """The policy statement."""
 *         return f"bool {self.name} {str(self.state).lower()};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->state); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_bool;
  __pyx_t_4[1] = __pyx_t_1;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[3] = __pyx_t_3;
  __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, 5 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":38
 *         return b
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         """The policy statement."""
 *         return f"bool {self.name} {str(self.state).lower()};"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Boolean.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":26
 *     """A Boolean."""
 * 
 *     cdef readonly bint state             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_5state_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_5state_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Boolean_5state___get__(((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_5state___get__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->state); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Boolean.state.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Boolean_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Boolean_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Boolean_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy, self.state)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->__pyx_base.name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy, self.state)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy, self.state)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy, self.state)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Boolean, (type(self), 0x2fa4582, None), state
*/
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Boolean, (type(self), 0x2fa4582, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Boolean, (type(self), 0x2fa4582, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Boolean, (type(self), 0x2fa4582, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Boolean); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_49956226);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_49956226);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_49956226) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Boolean, (type(self), 0x2fa4582, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Boolean, (type(self), 0x2fa4582, None), state
 *     else:
 *         return __pyx_unpickle_Boolean, (type(self), 0x2fa4582, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Boolean__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Boolean); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_49956226);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_49956226);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_49956226) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Boolean.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Boolean, (type(self), 0x2fa4582, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Boolean__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Boolean_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Boolean_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Boolean.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_7Boolean_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Boolean, (type(self), 0x2fa4582, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Boolean__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Boolean__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Boolean, (type(self), 0x2fa4582, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Boolean__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Boolean.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":51
 *         readonly frozenset booleans
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Conditional factory(SELinuxPolicy policy, sepol.cond_node_t *symbol):
 *         """Factory function for creating Conditional objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_f_7setools_9policyrep_11Conditional_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_node_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_c = 0;
  PyObject *__pyx_v_booleans = 0;
  PyObject *__pyx_v_n = NULL;
  struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  int __pyx_t_12;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":58
 *             list booleans
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cond_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/boolcond.pxi":59
 * 
 *         try:
 *             return _cond_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             c = Conditional.__new__(Conditional)
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__cond_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 59, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 59, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(6, 59, __pyx_L3_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_5);
      __pyx_t_5 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/boolcond.pxi":58
 *             list booleans
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cond_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/boolcond.pxi":60
 *         try:
 *             return _cond_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             c = Conditional.__new__(Conditional)
 *             _cond_cache[policy][<uintptr_t>symbol] = c
*/
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_6) {
      __Pyx_AddTraceback("setools.policyrep.Conditional.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(6, 60, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "setools/policyrep/boolcond.pxi":61
 *             return _cond_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             c = Conditional.__new__(Conditional)             # <<<<<<<<<<<<<<
 *             _cond_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy
*/
      __pyx_t_8 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Conditional(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 61, __pyx_L5_except_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_8);
      __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/boolcond.pxi":62
 *         except KeyError:
 *             c = Conditional.__new__(Conditional)
 *             _cond_cache[policy][<uintptr_t>symbol] = c             # <<<<<<<<<<<<<<
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
*/
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__cond_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 62, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely((__Pyx_SetItemInt(__pyx_t_8, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_c), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(6, 62, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "setools/policyrep/boolcond.pxi":63
 *             c = Conditional.__new__(Conditional)
 *             _cond_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy             # <<<<<<<<<<<<<<
 *             c.key = <uintptr_t>symbol
 *             c._postfix_expression = []
*/
      __Pyx_INCREF((PyObject *)__pyx_v_policy);
      __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
      __Pyx_GOTREF((PyObject *)__pyx_v_c->__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_v_c->__pyx_base.policy);
      __pyx_v_c->__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/boolcond.pxi":64
 *             _cond_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             c._postfix_expression = []
 *             booleans = []
*/
      __pyx_v_c->__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/boolcond.pxi":65
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 *             c._postfix_expression = []             # <<<<<<<<<<<<<<
 *             booleans = []
 * 
*/
      __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 65, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->_postfix_expression);
      __Pyx_DECREF(__pyx_v_c->_postfix_expression);
      __pyx_v_c->_postfix_expression = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/boolcond.pxi":66
 *             c.key = <uintptr_t>symbol
 *             c._postfix_expression = []
 *             booleans = []             # <<<<<<<<<<<<<<
 * 
 *             # Build expression list and boolean attribute
*/
      __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 66, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_v_booleans = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/boolcond.pxi":69
 * 
 *             # Build expression list and boolean attribute
 *             for n in ConditionalExprIterator.factory(policy, <sepol.cond_expr_t *>symbol.expr):             # <<<<<<<<<<<<<<
 *                 c._postfix_expression.append(n)
 *                 if isinstance(n, Boolean):
*/
      __pyx_t_8 = __pyx_f_7setools_9policyrep_23ConditionalExprIterator_factory(__pyx_v_policy, ((cond_expr_t *)__pyx_v_symbol->expr)); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 69, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_9 = __pyx_t_8; __Pyx_INCREF(__pyx_t_9);
        __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 69, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 69, __pyx_L5_except_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_9))) {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_9);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 69, __pyx_L5_except_error)
              #endif
              if (__pyx_t_10 >= __pyx_temp) break;
            }
            __pyx_t_8 = __Pyx_PyList_GetItemRefFast(__pyx_t_9, __pyx_t_10, __Pyx_ReferenceSharing_OwnStrongReference);
            ++__pyx_t_10;
          } else {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_9);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 69, __pyx_L5_except_error)
              #endif
              if (__pyx_t_10 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10));
            #else
            __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_9, __pyx_t_10);
            #endif
            ++__pyx_t_10;
          }
          if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 69, __pyx_L5_except_error)
        } else {
          __pyx_t_8 = __pyx_t_11(__pyx_t_9);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(6, 69, __pyx_L5_except_error)
              PyErr_Clear();
            }
            break;
          }
        }
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_8);
        __pyx_t_8 = 0;

        /* "setools/policyrep/boolcond.pxi":70
 *             # Build expression list and boolean attribute
 *             for n in ConditionalExprIterator.factory(policy, <sepol.cond_expr_t *>symbol.expr):
 *                 c._postfix_expression.append(n)             # <<<<<<<<<<<<<<
 *                 if isinstance(n, Boolean):
 *                     booleans.append(n)
*/
        if (unlikely(__pyx_v_c->_postfix_expression == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(6, 70, __pyx_L5_except_error)
        }
        __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_c->_postfix_expression, __pyx_v_n); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(6, 70, __pyx_L5_except_error)

        /* "setools/policyrep/boolcond.pxi":71
 *             for n in ConditionalExprIterator.factory(policy, <sepol.cond_expr_t *>symbol.expr):
 *                 c._postfix_expression.append(n)
 *                 if isinstance(n, Boolean):             # <<<<<<<<<<<<<<
 *                     booleans.append(n)
 * 
*/
        __pyx_t_13 = __Pyx_TypeCheck(__pyx_v_n, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Boolean); 
        if (__pyx_t_13) {

          /* "setools/policyrep/boolcond.pxi":72
 *                 c._postfix_expression.append(n)
 *                 if isinstance(n, Boolean):
 *                     booleans.append(n)             # <<<<<<<<<<<<<<
 * 
 *             c.booleans = frozenset(booleans)
*/
          __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_booleans, __pyx_v_n); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(6, 72, __pyx_L5_except_error)

          /* "setools/policyrep/boolcond.pxi":71
 *             for n in ConditionalExprIterator.factory(policy, <sepol.cond_expr_t *>symbol.expr):
 *                 c._postfix_expression.append(n)
 *                 if isinstance(n, Boolean):             # <<<<<<<<<<<<<<
 *                     booleans.append(n)
 * 
*/
        }

        /* "setools/policyrep/boolcond.pxi":69
 * 
 *             # Build expression list and boolean attribute
 *             for n in ConditionalExprIterator.factory(policy, <sepol.cond_expr_t *>symbol.expr):             # <<<<<<<<<<<<<<
 *                 c._postfix_expression.append(n)
 *                 if isinstance(n, Boolean):
*/
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "setools/policyrep/boolcond.pxi":74
 *                     booleans.append(n)
 * 
 *             c.booleans = frozenset(booleans)             # <<<<<<<<<<<<<<
 *             return c
 * 
*/
      __pyx_t_9 = __Pyx_PyFrozenSet_New(__pyx_v_booleans); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 74, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_GOTREF(__pyx_v_c->booleans);
      __Pyx_DECREF(__pyx_v_c->booleans);
      __pyx_v_c->booleans = ((PyObject*)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/boolcond.pxi":75
 * 
 *             c.booleans = frozenset(booleans)
 *             return c             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, other):
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __Pyx_INCREF((PyObject *)__pyx_v_c);
      __pyx_r = __pyx_v_c;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/boolcond.pxi":58
 *             list booleans
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cond_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/boolcond.pxi":51
 *         readonly frozenset booleans
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Conditional factory(SELinuxPolicy policy, sepol.cond_node_t *symbol):
 *         """Factory function for creating Conditional objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.Conditional.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_booleans);
  __Pyx_XDECREF(__pyx_v_n);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":77
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return other in self.booleans
 * 
*/

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_11Conditional_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static int __pyx_pw_7setools_9policyrep_11Conditional_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional___contains__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7setools_9policyrep_11Conditional___contains__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "setools/policyrep/boolcond.pxi":78
 * 
 *     def __contains__(self, other):
 *         return other in self.booleans             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_other, __pyx_v_self->booleans, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(6, 78, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":77
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return other in self.booleans
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Conditional.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":80
 *         return other in self.booleans
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         # sepol representation is in postfix notation.  This code
 *         # converts it to infix notation.  Parentheses are added
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_3__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_3__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_2__str__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_2__str__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  PyObject *__pyx_v_stack = NULL;
  PyObject *__pyx_v_prev_op_precedence = NULL;
  PyObject *__pyx_v_expr_node = NULL;
  PyObject *__pyx_v_operand = NULL;
  PyObject *__pyx_v_operator = NULL;
  PyObject *__pyx_v_op_precedence = NULL;
  PyObject *__pyx_v_subexpr = NULL;
  PyObject *__pyx_v_operand1 = NULL;
  PyObject *__pyx_v_operand2 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/boolcond.pxi":87
 *         # highest precedence (NOT) so if there is a single binary
 *         # operator, no parentheses are output
 *         stack = []             # <<<<<<<<<<<<<<
 *         prev_op_precedence = 5
 * 
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stack = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":88
 *         # operator, no parentheses are output
 *         stack = []
 *         prev_op_precedence = 5             # <<<<<<<<<<<<<<
 * 
 *         for expr_node in self.expression():
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_5);
  __pyx_v_prev_op_precedence = __pyx_mstate_global->__pyx_int_5;

  /* "setools/policyrep/boolcond.pxi":90
 *         prev_op_precedence = 5
 * 
 *         for expr_node in self.expression():             # <<<<<<<<<<<<<<
 *             if isinstance(expr_node, Boolean):
 *                 # append the boolean name
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expression, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 90, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 90, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 90, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 90, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(6, 90, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_expr_node, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/boolcond.pxi":91
 * 
 *         for expr_node in self.expression():
 *             if isinstance(expr_node, Boolean):             # <<<<<<<<<<<<<<
 *                 # append the boolean name
 *                 stack.append(str(expr_node))
*/
    __pyx_t_6 = __Pyx_TypeCheck(__pyx_v_expr_node, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Boolean); 
    if (__pyx_t_6) {

      /* "setools/policyrep/boolcond.pxi":93
 *             if isinstance(expr_node, Boolean):
 *                 # append the boolean name
 *                 stack.append(str(expr_node))             # <<<<<<<<<<<<<<
 *             elif expr_node.unary:
 *                 operand = stack.pop()
*/
      __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_expr_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 93, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(6, 93, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":91
 * 
 *         for expr_node in self.expression():
 *             if isinstance(expr_node, Boolean):             # <<<<<<<<<<<<<<
 *                 # append the boolean name
 *                 stack.append(str(expr_node))
*/
      goto __pyx_L5;
    }

    /* "setools/policyrep/boolcond.pxi":94
 *                 # append the boolean name
 *                 stack.append(str(expr_node))
 *             elif expr_node.unary:             # <<<<<<<<<<<<<<
 *                 operand = stack.pop()
 *                 operator = str(expr_node)
*/
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr_node, __pyx_mstate_global->__pyx_n_u_unary); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(6, 94, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/boolcond.pxi":95
 *                 stack.append(str(expr_node))
 *             elif expr_node.unary:
 *                 operand = stack.pop()             # <<<<<<<<<<<<<<
 *                 operator = str(expr_node)
 *                 op_precedence = expr_node.precedence
*/
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 95, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":96
 *             elif expr_node.unary:
 *                 operand = stack.pop()
 *                 operator = str(expr_node)             # <<<<<<<<<<<<<<
 *                 op_precedence = expr_node.precedence
 * 
*/
      __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_expr_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 96, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operator, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":97
 *                 operand = stack.pop()
 *                 operator = str(expr_node)
 *                 op_precedence = expr_node.precedence             # <<<<<<<<<<<<<<
 * 
 *                 # NOT is the highest precedence, so only need
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr_node, __pyx_mstate_global->__pyx_n_u_precedence); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 97, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_op_precedence, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":101
 *                 # NOT is the highest precedence, so only need
 *                 # parentheses if the operand is a subexpression
 *                 if isinstance(operand, list):             # <<<<<<<<<<<<<<
 *                     subexpr = [operator, "(", operand, ")"]
 *                 else:
*/
      __pyx_t_6 = PyList_Check(__pyx_v_operand); 
      if (__pyx_t_6) {

        /* "setools/policyrep/boolcond.pxi":102
 *                 # parentheses if the operand is a subexpression
 *                 if isinstance(operand, list):
 *                     subexpr = [operator, "(", operand, ")"]             # <<<<<<<<<<<<<<
 *                 else:
 *                     subexpr = [operator, operand]
*/
        __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 102, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_operator);
        __Pyx_GIVEREF(__pyx_v_operator);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_operator) != (0)) __PYX_ERR(6, 102, __pyx_L1_error);
        __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__3);
        __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__3);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_kp_u__3) != (0)) __PYX_ERR(6, 102, __pyx_L1_error);
        __Pyx_INCREF(__pyx_v_operand);
        __Pyx_GIVEREF(__pyx_v_operand);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 2, __pyx_v_operand) != (0)) __PYX_ERR(6, 102, __pyx_L1_error);
        __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__4);
        __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__4);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 3, __pyx_mstate_global->__pyx_kp_u__4) != (0)) __PYX_ERR(6, 102, __pyx_L1_error);
        __Pyx_XDECREF_SET(__pyx_v_subexpr, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;

        /* "setools/policyrep/boolcond.pxi":101
 *                 # NOT is the highest precedence, so only need
 *                 # parentheses if the operand is a subexpression
 *                 if isinstance(operand, list):             # <<<<<<<<<<<<<<
 *                     subexpr = [operator, "(", operand, ")"]
 *                 else:
*/
        goto __pyx_L6;
      }

      /* "setools/policyrep/boolcond.pxi":104
 *                     subexpr = [operator, "(", operand, ")"]
 *                 else:
 *                     subexpr = [operator, operand]             # <<<<<<<<<<<<<<
 * 
 *                 stack.append(subexpr)
*/
      /*else*/ {
        __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 104, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_operator);
        __Pyx_GIVEREF(__pyx_v_operator);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_operator) != (0)) __PYX_ERR(6, 104, __pyx_L1_error);
        __Pyx_INCREF(__pyx_v_operand);
        __Pyx_GIVEREF(__pyx_v_operand);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 1, __pyx_v_operand) != (0)) __PYX_ERR(6, 104, __pyx_L1_error);
        __Pyx_XDECREF_SET(__pyx_v_subexpr, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
      }
      __pyx_L6:;

      /* "setools/policyrep/boolcond.pxi":106
 *                     subexpr = [operator, operand]
 * 
 *                 stack.append(subexpr)             # <<<<<<<<<<<<<<
 *                 prev_op_precedence = op_precedence
 *             else:
*/
      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_v_subexpr); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(6, 106, __pyx_L1_error)

      /* "setools/policyrep/boolcond.pxi":107
 * 
 *                 stack.append(subexpr)
 *                 prev_op_precedence = op_precedence             # <<<<<<<<<<<<<<
 *             else:
 *                 operand1 = stack.pop()
*/
      __Pyx_INCREF(__pyx_v_op_precedence);
      __Pyx_DECREF_SET(__pyx_v_prev_op_precedence, __pyx_v_op_precedence);

      /* "setools/policyrep/boolcond.pxi":94
 *                 # append the boolean name
 *                 stack.append(str(expr_node))
 *             elif expr_node.unary:             # <<<<<<<<<<<<<<
 *                 operand = stack.pop()
 *                 operator = str(expr_node)
*/
      goto __pyx_L5;
    }

    /* "setools/policyrep/boolcond.pxi":109
 *                 prev_op_precedence = op_precedence
 *             else:
 *                 operand1 = stack.pop()             # <<<<<<<<<<<<<<
 *                 operand2 = stack.pop()
 *                 operator = str(expr_node)
*/
    /*else*/ {
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand1, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":110
 *             else:
 *                 operand1 = stack.pop()
 *                 operand2 = stack.pop()             # <<<<<<<<<<<<<<
 *                 operator = str(expr_node)
 *                 op_precedence = expr_node.precedence
*/
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 110, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand2, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":111
 *                 operand1 = stack.pop()
 *                 operand2 = stack.pop()
 *                 operator = str(expr_node)             # <<<<<<<<<<<<<<
 *                 op_precedence = expr_node.precedence
 * 
*/
      __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_expr_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 111, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operator, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":112
 *                 operand2 = stack.pop()
 *                 operator = str(expr_node)
 *                 op_precedence = expr_node.precedence             # <<<<<<<<<<<<<<
 * 
 *                 if prev_op_precedence > op_precedence:
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr_node, __pyx_mstate_global->__pyx_n_u_precedence); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 112, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_op_precedence, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":114
 *                 op_precedence = expr_node.precedence
 * 
 *                 if prev_op_precedence > op_precedence:             # <<<<<<<<<<<<<<
 *                     # if previous operator is of higher precedence
 *                     # no parentheses are needed.
*/
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_prev_op_precedence, __pyx_v_op_precedence, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 114, __pyx_L1_error)
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(6, 114, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_6) {

        /* "setools/policyrep/boolcond.pxi":117
 *                     # if previous operator is of higher precedence
 *                     # no parentheses are needed.
 *                     subexpr = [operand1, operator, operand2]             # <<<<<<<<<<<<<<
 *                 else:
 *                     subexpr = ["(", operand1, operator, operand2, ")"]
*/
        __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 117, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_operand1);
        __Pyx_GIVEREF(__pyx_v_operand1);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_operand1) != (0)) __PYX_ERR(6, 117, __pyx_L1_error);
        __Pyx_INCREF(__pyx_v_operator);
        __Pyx_GIVEREF(__pyx_v_operator);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 1, __pyx_v_operator) != (0)) __PYX_ERR(6, 117, __pyx_L1_error);
        __Pyx_INCREF(__pyx_v_operand2);
        __Pyx_GIVEREF(__pyx_v_operand2);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 2, __pyx_v_operand2) != (0)) __PYX_ERR(6, 117, __pyx_L1_error);
        __Pyx_XDECREF_SET(__pyx_v_subexpr, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;

        /* "setools/policyrep/boolcond.pxi":114
 *                 op_precedence = expr_node.precedence
 * 
 *                 if prev_op_precedence > op_precedence:             # <<<<<<<<<<<<<<
 *                     # if previous operator is of higher precedence
 *                     # no parentheses are needed.
*/
        goto __pyx_L7;
      }

      /* "setools/policyrep/boolcond.pxi":119
 *                     subexpr = [operand1, operator, operand2]
 *                 else:
 *                     subexpr = ["(", operand1, operator, operand2, ")"]             # <<<<<<<<<<<<<<
 * 
 *                 stack.append(subexpr)
*/
      /*else*/ {
        __pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 119, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__3);
        __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__3);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_mstate_global->__pyx_kp_u__3) != (0)) __PYX_ERR(6, 119, __pyx_L1_error);
        __Pyx_INCREF(__pyx_v_operand1);
        __Pyx_GIVEREF(__pyx_v_operand1);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 1, __pyx_v_operand1) != (0)) __PYX_ERR(6, 119, __pyx_L1_error);
        __Pyx_INCREF(__pyx_v_operator);
        __Pyx_GIVEREF(__pyx_v_operator);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 2, __pyx_v_operator) != (0)) __PYX_ERR(6, 119, __pyx_L1_error);
        __Pyx_INCREF(__pyx_v_operand2);
        __Pyx_GIVEREF(__pyx_v_operand2);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 3, __pyx_v_operand2) != (0)) __PYX_ERR(6, 119, __pyx_L1_error);
        __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__4);
        __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__4);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 4, __pyx_mstate_global->__pyx_kp_u__4) != (0)) __PYX_ERR(6, 119, __pyx_L1_error);
        __Pyx_XDECREF_SET(__pyx_v_subexpr, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
      }
      __pyx_L7:;

      /* "setools/policyrep/boolcond.pxi":121
 *                     subexpr = ["(", operand1, operator, operand2, ")"]
 * 
 *                 stack.append(subexpr)             # <<<<<<<<<<<<<<
 *                 prev_op_precedence = op_precedence
 * 
*/
      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_v_subexpr); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(6, 121, __pyx_L1_error)

      /* "setools/policyrep/boolcond.pxi":122
 * 
 *                 stack.append(subexpr)
 *                 prev_op_precedence = op_precedence             # <<<<<<<<<<<<<<
 * 
 *         return ' '.join(flatten_list(stack))
*/
      __Pyx_INCREF(__pyx_v_op_precedence);
      __Pyx_DECREF_SET(__pyx_v_prev_op_precedence, __pyx_v_op_precedence);
    }
    __pyx_L5:;

    /* "setools/policyrep/boolcond.pxi":90
 *         prev_op_precedence = 5
 * 
 *         for expr_node in self.expression():             # <<<<<<<<<<<<<<
 *             if isinstance(expr_node, Boolean):
 *                 # append the boolean name
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/boolcond.pxi":124
 *                 prev_op_precedence = op_precedence
 * 
 *         return ' '.join(flatten_list(stack))             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_flatten_list(__pyx_v_stack); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":80
 *         return other in self.booleans
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         # sepol representation is in postfix notation.  This code
 *         # converts it to infix notation.  Parentheses are added
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Conditional.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stack);
  __Pyx_XDECREF(__pyx_v_prev_op_precedence);
  __Pyx_XDECREF(__pyx_v_expr_node);
  __Pyx_XDECREF(__pyx_v_operand);
  __Pyx_XDECREF(__pyx_v_operator);
  __Pyx_XDECREF(__pyx_v_op_precedence);
  __Pyx_XDECREF(__pyx_v_subexpr);
  __Pyx_XDECREF(__pyx_v_operand1);
  __Pyx_XDECREF(__pyx_v_operand2);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":126
 *         return ' '.join(flatten_list(stack))
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.key)
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_11Conditional_5__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_11Conditional_5__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_4__hash__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_11Conditional_4__hash__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/boolcond.pxi":127
 * 
 *     def __hash__(self):
 *         return hash(self.key)             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(6, 127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":126
 *         return ' '.join(flatten_list(stack))
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.key)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Conditional.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":129
 *         return hash(self.key)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self._eq(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_6__eq__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_6__eq__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/boolcond.pxi":130
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self._eq(other)
 *         except TypeError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/boolcond.pxi":131
 *     def __eq__(self, other):
 *         try:
 *             return self._eq(other)             # <<<<<<<<<<<<<<
 *         except TypeError:
 *             return str(self) == str(other)
*/
      __Pyx_XDECREF(__pyx_r);
      if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject))))) __PYX_ERR(6, 131, __pyx_L3_error)
      __pyx_t_4 = __pyx_f_7setools_9policyrep_12PolicyObject__eq(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), ((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_other)); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 131, __pyx_L3_error)
      __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 131, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/boolcond.pxi":130
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self._eq(other)
 *         except TypeError:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/boolcond.pxi":132
 *         try:
 *             return self._eq(other)
 *         except TypeError:             # <<<<<<<<<<<<<<
 *             return str(self) == str(other)
 * 
*/
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
    if (__pyx_t_6) {
      __Pyx_AddTraceback("setools.policyrep.Conditional.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(6, 132, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);

      /* "setools/policyrep/boolcond.pxi":133
 *             return self._eq(other)
 *         except TypeError:
 *             return str(self) == str(other)             # <<<<<<<<<<<<<<
 * 
 *     def evaluate(self, **kwargs):
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 133, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 133, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_t_10, Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(6, 133, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 133, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_r = __pyx_t_10;
      __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/boolcond.pxi":130
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self._eq(other)
 *         except TypeError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/boolcond.pxi":129
 *         return hash(self.key)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self._eq(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.Conditional.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":135
 *             return str(self) == str(other)
 * 
 *     def evaluate(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Evaluate the expression with the stated boolean values.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_9evaluate(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_11Conditional_8evaluate, "\n        Evaluate the expression with the stated boolean values.\n\n        Keyword Parameters: bool_name=True|False\n        Each keyword parameter name corresponds to a Boolean name\n        in the expression and the state to use in the evaluation.\n        If a Boolean value is not set, its default value is used.\n        Extra values are ignored.\n\n        Return:     bool\n        ");
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Conditional_9evaluate = {"evaluate", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_9evaluate, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Conditional_8evaluate};
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_9evaluate(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_kwargs = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("evaluate (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("evaluate", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (__pyx_kwds_len > 0) {
    if (unlikely(__Pyx_CheckKeywordStrings("evaluate", __pyx_kwds) == -1)) return NULL;
    __pyx_v_kwargs = __Pyx_KwargsAsDict_FASTCALL(__pyx_kwds, __pyx_kwvalues);
    if (unlikely(!__pyx_v_kwargs)) return NULL;
    __Pyx_GOTREF(__pyx_v_kwargs);
  } else {
    __pyx_v_kwargs = PyDict_New();
    if (unlikely(!__pyx_v_kwargs)) return NULL;
    __Pyx_GOTREF(__pyx_v_kwargs);
  }
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_8evaluate(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self), __pyx_v_kwargs);

  /* function exit code */
  __Pyx_DECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_8evaluate(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_kwargs) {
  PyObject *__pyx_v_stack = 0;
  PyObject *__pyx_v_bool_values = 0;
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_operator = 0;
  PyObject *__pyx_v_expr_node = NULL;
  PyObject *__pyx_v_operand = NULL;
  PyObject *__pyx_v_operand1 = NULL;
  PyObject *__pyx_v_operand2 = NULL;
  PyObject *__pyx_7genexpr__pyx_v_b = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  size_t __pyx_t_11;
  PyObject *(*__pyx_t_12)(PyObject *);
  int __pyx_t_13;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("evaluate", 0);

  /* "setools/policyrep/boolcond.pxi":148
 *         """
 *         cdef:
 *             list stack = []             # <<<<<<<<<<<<<<
 *             dict bool_values = {b.name: kwargs.get(b.name, b.state) for b in self.booleans}
 *             ConditionalOperator operator
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stack = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":149
 *         cdef:
 *             list stack = []
 *             dict bool_values = {b.name: kwargs.get(b.name, b.state) for b in self.booleans}             # <<<<<<<<<<<<<<
 *             ConditionalOperator operator
 * 
*/
  { /* enter inner scope */
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 149, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = 0;
    __pyx_t_6 = __Pyx_set_iterator(__pyx_v_self->booleans, 0, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 149, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2);
    __pyx_t_2 = __pyx_t_6;
    __pyx_t_6 = 0;
    while (1) {
      __pyx_t_7 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, __pyx_t_5);
      if (unlikely(__pyx_t_7 == 0)) break;
      if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(6, 149, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_b, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_b, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 149, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_b, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 149, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_b, __pyx_mstate_global->__pyx_n_u_state); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 149, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 149, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_t_6, (PyObject*)__pyx_t_10))) __PYX_ERR(6, 149, __pyx_L5_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_7genexpr__pyx_v_b); __pyx_7genexpr__pyx_v_b = 0;
    goto __pyx_L8_exit_scope;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_7genexpr__pyx_v_b); __pyx_7genexpr__pyx_v_b = 0;
    goto __pyx_L1_error;
    __pyx_L8_exit_scope:;
  } /* exit inner scope */
  __pyx_v_bool_values = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":152
 *             ConditionalOperator operator
 * 
 *         for expr_node in self.expression():             # <<<<<<<<<<<<<<
 *             if isinstance(expr_node, Boolean):
 *                 stack.append(<bint>bool_values[expr_node])
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_11 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expression, __pyx_callargs+__pyx_t_11, (1-__pyx_t_11) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_12 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 152, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 152, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 152, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 152, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_12(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(6, 152, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_expr_node, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/boolcond.pxi":153
 * 
 *         for expr_node in self.expression():
 *             if isinstance(expr_node, Boolean):             # <<<<<<<<<<<<<<
 *                 stack.append(<bint>bool_values[expr_node])
 *             elif expr_node.unary:
*/
    __pyx_t_13 = __Pyx_TypeCheck(__pyx_v_expr_node, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Boolean); 
    if (__pyx_t_13) {

      /* "setools/policyrep/boolcond.pxi":154
 *         for expr_node in self.expression():
 *             if isinstance(expr_node, Boolean):
 *                 stack.append(<bint>bool_values[expr_node])             # <<<<<<<<<<<<<<
 *             elif expr_node.unary:
 *                 operand = stack.pop()
*/
      __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_bool_values, __pyx_v_expr_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 154, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(6, 154, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 154, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(6, 154, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":153
 * 
 *         for expr_node in self.expression():
 *             if isinstance(expr_node, Boolean):             # <<<<<<<<<<<<<<
 *                 stack.append(<bint>bool_values[expr_node])
 *             elif expr_node.unary:
*/
      goto __pyx_L11;
    }

    /* "setools/policyrep/boolcond.pxi":155
 *             if isinstance(expr_node, Boolean):
 *                 stack.append(<bint>bool_values[expr_node])
 *             elif expr_node.unary:             # <<<<<<<<<<<<<<
 *                 operand = stack.pop()
 *                 operator = expr_node
*/
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr_node, __pyx_mstate_global->__pyx_n_u_unary); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(6, 155, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_13) {

      /* "setools/policyrep/boolcond.pxi":156
 *                 stack.append(<bint>bool_values[expr_node])
 *             elif expr_node.unary:
 *                 operand = stack.pop()             # <<<<<<<<<<<<<<
 *                 operator = expr_node
 *                 stack.append(operator.evaluate(operand))
*/
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":157
 *             elif expr_node.unary:
 *                 operand = stack.pop()
 *                 operator = expr_node             # <<<<<<<<<<<<<<
 *                 stack.append(operator.evaluate(operand))
 *             else:
*/
      __pyx_t_1 = __pyx_v_expr_node;
      __Pyx_INCREF(__pyx_t_1);
      if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalOperator))))) __PYX_ERR(6, 157, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_operator, ((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_t_1));
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":158
 *                 operand = stack.pop()
 *                 operator = expr_node
 *                 stack.append(operator.evaluate(operand))             # <<<<<<<<<<<<<<
 *             else:
 *                 operand1 = stack.pop()
*/
      __pyx_t_10 = NULL;
      __Pyx_INCREF(__pyx_v_operator->evaluate);
      __pyx_t_6 = __pyx_v_operator->evaluate; 
      __pyx_t_11 = 1;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_6);
        assert(__pyx_t_10);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
        __pyx_t_11 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_operand};
        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(6, 158, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":155
 *             if isinstance(expr_node, Boolean):
 *                 stack.append(<bint>bool_values[expr_node])
 *             elif expr_node.unary:             # <<<<<<<<<<<<<<
 *                 operand = stack.pop()
 *                 operator = expr_node
*/
      goto __pyx_L11;
    }

    /* "setools/policyrep/boolcond.pxi":160
 *                 stack.append(operator.evaluate(operand))
 *             else:
 *                 operand1 = stack.pop()             # <<<<<<<<<<<<<<
 *                 operand2 = stack.pop()
 *                 operator = expr_node
*/
    /*else*/ {
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 160, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand1, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":161
 *             else:
 *                 operand1 = stack.pop()
 *                 operand2 = stack.pop()             # <<<<<<<<<<<<<<
 *                 operator = expr_node
 *                 stack.append(operator.evaluate(operand1, operand2))
*/
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 161, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand2, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":162
 *                 operand1 = stack.pop()
 *                 operand2 = stack.pop()
 *                 operator = expr_node             # <<<<<<<<<<<<<<
 *                 stack.append(operator.evaluate(operand1, operand2))
 * 
*/
      __pyx_t_1 = __pyx_v_expr_node;
      __Pyx_INCREF(__pyx_t_1);
      if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalOperator))))) __PYX_ERR(6, 162, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_operator, ((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_t_1));
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":163
 *                 operand2 = stack.pop()
 *                 operator = expr_node
 *                 stack.append(operator.evaluate(operand1, operand2))             # <<<<<<<<<<<<<<
 * 
 *         return stack[0]
*/
      __pyx_t_6 = NULL;
      __Pyx_INCREF(__pyx_v_operator->evaluate);
      __pyx_t_10 = __pyx_v_operator->evaluate; 
      __pyx_t_11 = 1;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10);
        assert(__pyx_t_6);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
        __pyx_t_11 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_v_operand1, __pyx_v_operand2};
        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_11, (3-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 163, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(6, 163, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L11:;

    /* "setools/policyrep/boolcond.pxi":152
 *             ConditionalOperator operator
 * 
 *         for expr_node in self.expression():             # <<<<<<<<<<<<<<
 *             if isinstance(expr_node, Boolean):
 *                 stack.append(<bint>bool_values[expr_node])
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/boolcond.pxi":165
 *                 stack.append(operator.evaluate(operand1, operand2))
 * 
 *         return stack[0]             # <<<<<<<<<<<<<<
 * 
 *     def expression(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_stack, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":135
 *             return str(self) == str(other)
 * 
 *     def evaluate(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Evaluate the expression with the stated boolean values.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.Conditional.evaluate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stack);
  __Pyx_XDECREF(__pyx_v_bool_values);
  __Pyx_XDECREF((PyObject *)__pyx_v_operator);
  __Pyx_XDECREF(__pyx_v_expr_node);
  __Pyx_XDECREF(__pyx_v_operand);
  __Pyx_XDECREF(__pyx_v_operand1);
  __Pyx_XDECREF(__pyx_v_operand2);
  __Pyx_XDECREF(__pyx_7genexpr__pyx_v_b);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":167
 *         return stack[0]
 * 
 *     def expression(self):             # <<<<<<<<<<<<<<
 *         """Iterator over The conditional expression."""
 *         return iter(self._postfix_expression)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_11expression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_11Conditional_10expression, "Iterator over The conditional expression.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Conditional_11expression = {"expression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_11expression, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Conditional_10expression};
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_11expression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expression (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expression", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expression", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_10expression(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_10expression(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expression", 0);

  /* "setools/policyrep/boolcond.pxi":169
 *     def expression(self):
 *         """Iterator over The conditional expression."""
 *         return iter(self._postfix_expression)             # <<<<<<<<<<<<<<
 * 
 *     def false_rules(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_postfix_expression;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":167
 *         return stack[0]
 * 
 *     def expression(self):             # <<<<<<<<<<<<<<
 *         """Iterator over The conditional expression."""
 *         return iter(self._postfix_expression)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Conditional.expression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":171
 *         return iter(self._postfix_expression)
 * 
 *     def false_rules(self):             # <<<<<<<<<<<<<<
 *         """An iterator over the rules in the false (else) block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_13false_rules(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_11Conditional_12false_rules, "An iterator over the rules in the false (else) block of the conditional.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Conditional_13false_rules = {"false_rules", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_13false_rules, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Conditional_12false_rules};
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_13false_rules(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("false_rules (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("false_rules", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("false_rules", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_12false_rules(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_12false_rules(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  cond_node_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("false_rules", 0);

  /* "setools/policyrep/boolcond.pxi":173
 *     def false_rules(self):
 *         """An iterator over the rules in the false (else) block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key             # <<<<<<<<<<<<<<
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.false_list, self, False)
 * 
*/
  __pyx_v_symbol = ((cond_node_t *)__pyx_v_self->__pyx_base.key);

  /* "setools/policyrep/boolcond.pxi":174
 *         """An iterator over the rules in the false (else) block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.false_list, self, False)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_25ConditionalTERuleIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_symbol->false_list, ((PyObject *)__pyx_v_self), Py_False); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":171
 *         return iter(self._postfix_expression)
 * 
 *     def false_rules(self):             # <<<<<<<<<<<<<<
 *         """An iterator over the rules in the false (else) block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Conditional.false_rules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":176
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.false_list, self, False)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_15statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Conditional_15statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_15statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_15statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_14statement(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_14statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/boolcond.pxi":177
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 *     def true_rules(self):
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 177, __pyx_L1_error)

  /* "setools/policyrep/boolcond.pxi":176
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.false_list, self, False)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Conditional.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":179
 *         raise NoStatement
 * 
 *     def true_rules(self):             # <<<<<<<<<<<<<<
 *         """An iterator over the rules in the true block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_17true_rules(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_11Conditional_16true_rules, "An iterator over the rules in the true block of the conditional.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Conditional_17true_rules = {"true_rules", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_17true_rules, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Conditional_16true_rules};
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_17true_rules(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("true_rules (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("true_rules", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("true_rules", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_16true_rules(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_16true_rules(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  cond_node_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("true_rules", 0);

  /* "setools/policyrep/boolcond.pxi":181
 *     def true_rules(self):
 *         """An iterator over the rules in the true block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key             # <<<<<<<<<<<<<<
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)
 * 
*/
  __pyx_v_symbol = ((cond_node_t *)__pyx_v_self->__pyx_base.key);

  /* "setools/policyrep/boolcond.pxi":182
 *         """An iterator over the rules in the true block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)             # <<<<<<<<<<<<<<
 * 
 *     def truth_table(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_25ConditionalTERuleIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_symbol->true_list, ((PyObject *)__pyx_v_self), Py_True); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":179
 *         raise NoStatement
 * 
 *     def true_rules(self):             # <<<<<<<<<<<<<<
 *         """An iterator over the rules in the true block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Conditional.true_rules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":184
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)
 * 
 *     def truth_table(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generate a truth table for this expression.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_19truth_table(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_11Conditional_18truth_table, "\n        Generate a truth table for this expression.\n\n        Return:     list\n\n        List item:\n        tuple:      values, result\n\n        Tuple item:\n        values:     Dictionary keyed on Boolean names\n                    with each value being T/F.\n        result:     Evaluation result for the expression\n                    given the values.\n\n        Example return for \"a || b\"\n        [({\"a\": True, \"b\": True}, True),\n         ({\"a\": True, \"b\": False}, True),\n         ({\"a\": False, \"b\": True}, True),\n         ({\"a\": False, \"b\": False}, False)]\n        ");
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Conditional_19truth_table = {"truth_table", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_19truth_table, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Conditional_18truth_table};
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_19truth_table(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("truth_table (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("truth_table", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("truth_table", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_18truth_table(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_11Conditional_11truth_table_2generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/boolcond.pxi":205
 *          ({"a": False, "b": False}, False)]
 *         """
 *         bools = sorted(str(b) for b in self.booleans)             # <<<<<<<<<<<<<<
 * 
 *         truth_table = []
*/

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_11truth_table_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct__genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(6, 205, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_11Conditional_11truth_table_2generator12, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_truth_table_locals_genexpr, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(6, 205, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Conditional.truth_table.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_11Conditional_11truth_table_2generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(6, 205, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(6, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  __pyx_t_2 = 0;
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(6, 205, __pyx_L1_error) }
  __pyx_t_5 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_genexpr_arg_0, 0, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_5;
  __pyx_t_5 = 0;
  while (1) {
    __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, __pyx_t_4);
    if (unlikely(__pyx_t_6 == 0)) break;
    if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(6, 205, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_b);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_b, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Unicode(__pyx_cur_scope->__pyx_v_b); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 205, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_5))) __PYX_ERR(6, 205, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":184
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)
 * 
 *     def truth_table(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generate a truth table for this expression.
*/

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_18truth_table(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  PyObject *__pyx_v_bools = NULL;
  PyObject *__pyx_v_truth_table = NULL;
  PyObject *__pyx_v_truth_list = NULL;
  PyObject *__pyx_v_row = NULL;
  PyObject *__pyx_v_values = NULL;
  PyObject *__pyx_gb_7setools_9policyrep_11Conditional_11truth_table_2generator12 = 0;
  Py_ssize_t __pyx_8genexpr2__pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  Py_ssize_t __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("truth_table", 0);

  /* "setools/policyrep/boolcond.pxi":205
 *          ({"a": False, "b": False}, False)]
 *         """
 *         bools = sorted(str(b) for b in self.booleans)             # <<<<<<<<<<<<<<
 * 
 *         truth_table = []
*/
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_11Conditional_11truth_table_genexpr(NULL, __pyx_v_self->booleans); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Generator_GetInlinedResult(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely((PyList_Sort(__pyx_t_2) < 0))) __PYX_ERR(6, 205, __pyx_L1_error)
  __pyx_v_bools = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/boolcond.pxi":207
 *         bools = sorted(str(b) for b in self.booleans)
 * 
 *         truth_table = []             # <<<<<<<<<<<<<<
 * 
 *         # create a list of all combinations of T/F for each Boolean
*/
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_truth_table = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/boolcond.pxi":210
 * 
 *         # create a list of all combinations of T/F for each Boolean
 *         truth_list = list(itertools.product([True, False], repeat=len(bools)))             # <<<<<<<<<<<<<<
 * 
 *         for row in truth_list:
*/
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_product); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(Py_True);
  __Pyx_GIVEREF(Py_True);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, Py_True) != (0)) __PYX_ERR(6, 210, __pyx_L1_error);
  __Pyx_INCREF(Py_False);
  __Pyx_GIVEREF(Py_False);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, Py_False) != (0)) __PYX_ERR(6, 210, __pyx_L1_error);
  __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_bools); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(6, 210, __pyx_L1_error)
  __pyx_t_6 = PyLong_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_7 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_1, __pyx_t_3};
    __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 210, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_repeat, __pyx_t_6, __pyx_t_8, __pyx_callargs+2, 0) < (0)) __PYX_ERR(6, 210, __pyx_L1_error)
    __pyx_t_2 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 210, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_t_4 = __Pyx_PySequence_ListKeepNew(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_truth_list = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "setools/policyrep/boolcond.pxi":212
 *         truth_list = list(itertools.product([True, False], repeat=len(bools)))
 * 
 *         for row in truth_list:             # <<<<<<<<<<<<<<
 *             values = {bools[i]: row[i] for i in range(len(bools))}
 *             truth_table.append(TruthTableRow(values, self.evaluate(**values)))
*/
  __pyx_t_4 = __pyx_v_truth_list; __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 212, __pyx_L1_error)
      #endif
      if (__pyx_t_5 >= __pyx_temp) break;
    }
    __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference);
    ++__pyx_t_5;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 212, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_row, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/boolcond.pxi":213
 * 
 *         for row in truth_list:
 *             values = {bools[i]: row[i] for i in range(len(bools))}             # <<<<<<<<<<<<<<
 *             truth_table.append(TruthTableRow(values, self.evaluate(**values)))
 * 
*/
    { /* enter inner scope */
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 213, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = __Pyx_PyList_GET_SIZE(__pyx_v_bools); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(6, 213, __pyx_L1_error)
      __pyx_t_10 = __pyx_t_9;
      for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
        __pyx_8genexpr2__pyx_v_i = __pyx_t_11;
        __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_bools, __pyx_8genexpr2__pyx_v_i, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_row, __pyx_8genexpr2__pyx_v_i, Py_ssize_t, 1, PyLong_FromSsize_t, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (unlikely(PyDict_SetItem(__pyx_t_2, (PyObject*)__pyx_t_8, (PyObject*)__pyx_t_6))) __PYX_ERR(6, 213, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    } /* exit inner scope */
    __Pyx_XDECREF_SET(__pyx_v_values, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "setools/policyrep/boolcond.pxi":214
 *         for row in truth_list:
 *             values = {bools[i]: row[i] for i in range(len(bools))}
 *             truth_table.append(TruthTableRow(values, self.evaluate(**values)))             # <<<<<<<<<<<<<<
 * 
 *         return truth_table
*/
    __pyx_t_6 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_TruthTableRow); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 214, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 214, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyDict_Copy(__pyx_v_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 214, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 214, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
      assert(__pyx_t_6);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_v_values, __pyx_t_12};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 214, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_truth_table, __pyx_t_2); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(6, 214, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/boolcond.pxi":212
 *         truth_list = list(itertools.product([True, False], repeat=len(bools)))
 * 
 *         for row in truth_list:             # <<<<<<<<<<<<<<
 *             values = {bools[i]: row[i] for i in range(len(bools))}
 *             truth_table.append(TruthTableRow(values, self.evaluate(**values)))
*/
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/boolcond.pxi":216
 *             truth_table.append(TruthTableRow(values, self.evaluate(**values)))
 * 
 *         return truth_table             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_truth_table);
  __pyx_r = __pyx_v_truth_table;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":184
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)
 * 
 *     def truth_table(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generate a truth table for this expression.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("setools.policyrep.Conditional.truth_table", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_bools);
  __Pyx_XDECREF(__pyx_v_truth_table);
  __Pyx_XDECREF(__pyx_v_truth_list);
  __Pyx_XDECREF(__pyx_v_row);
  __Pyx_XDECREF(__pyx_v_values);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_11Conditional_11truth_table_2generator12);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":49
 *     cdef:
 *         list _postfix_expression
 *         readonly frozenset booleans             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_8booleans_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_8booleans_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_8booleans___get__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_8booleans___get__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->booleans);
  __pyx_r = __pyx_v_self->booleans;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_21__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Conditional_21__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_21__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_21__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_20__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_20__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._postfix_expression, self.booleans, self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_postfix_expression);
  __Pyx_GIVEREF(__pyx_v_self->_postfix_expression);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_postfix_expression) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->booleans);
  __Pyx_GIVEREF(__pyx_v_self->booleans);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->booleans) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._postfix_expression, self.booleans, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._postfix_expression, self.booleans, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._postfix_expression is not None or self.booleans is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._postfix_expression, self.booleans, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._postfix_expression is not None or self.booleans is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Conditional, (type(self), 0x9d7ad19, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_postfix_expression != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->booleans != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._postfix_expression is not None or self.booleans is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Conditional, (type(self), 0x9d7ad19, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._postfix_expression is not None or self.booleans is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Conditional, (type(self), 0x9d7ad19, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Conditional, (type(self), 0x9d7ad19, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Conditional); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_165129497);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_165129497);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_165129497) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._postfix_expression is not None or self.booleans is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Conditional, (type(self), 0x9d7ad19, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Conditional, (type(self), 0x9d7ad19, None), state
 *     else:
 *         return __pyx_unpickle_Conditional, (type(self), 0x9d7ad19, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Conditional__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Conditional); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_165129497);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_165129497);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_165129497) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Conditional.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Conditional, (type(self), 0x9d7ad19, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Conditional__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_23__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Conditional_23__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_23__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_23__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Conditional.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_22__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_22__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Conditional, (type(self), 0x9d7ad19, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Conditional__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Conditional__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Conditional, (type(self), 0x9d7ad19, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Conditional__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Conditional.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":234
 * 
 *     _cond_expr_val_to_details = {
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),             # <<<<<<<<<<<<<<
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_4lambda1(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_4lambda1 = {"lambda1", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_4lambda1, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_4lambda1(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_x = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda1 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_x,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 234, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 234, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lambda1", 0) < (0)) __PYX_ERR(6, 234, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda1", 1, 1, 1, i); __PYX_ERR(6, 234, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 234, __pyx_L3_error)
    }
    __pyx_v_x = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda1", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 234, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda1(__pyx_self, __pyx_v_x);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_x); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(6, 234, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong((!__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":235
 *     _cond_expr_val_to_details = {
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),             # <<<<<<<<<<<<<<
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_5lambda2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_5lambda2 = {"lambda2", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_5lambda2, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_5lambda2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda2 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_x,&__pyx_mstate_global->__pyx_n_u_y,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 235, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 235, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 235, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lambda2", 0) < (0)) __PYX_ERR(6, 235, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda2", 1, 2, 2, i); __PYX_ERR(6, 235, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 235, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 235, __pyx_L3_error)
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda2", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 235, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda2(__pyx_self, __pyx_v_x, __pyx_v_y);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_x); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(6, 235, __pyx_L1_error)
  if (!__pyx_t_2) {
  } else {
    __Pyx_INCREF(__pyx_v_x);
    __pyx_t_1 = __pyx_v_x;
    goto __pyx_L3_bool_binop_done;
  }
  __Pyx_INCREF(__pyx_v_y);
  __pyx_t_1 = __pyx_v_y;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":236
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),             # <<<<<<<<<<<<<<
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_6lambda3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_6lambda3 = {"lambda3", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_6lambda3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_6lambda3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_x,&__pyx_mstate_global->__pyx_n_u_y,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 236, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 236, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 236, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lambda3", 0) < (0)) __PYX_ERR(6, 236, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda3", 1, 2, 2, i); __PYX_ERR(6, 236, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 236, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 236, __pyx_L3_error)
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda3", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 236, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda3(__pyx_self, __pyx_v_x, __pyx_v_y);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda3(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda3", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_x); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(6, 236, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __Pyx_INCREF(__pyx_v_x);
    __pyx_t_1 = __pyx_v_x;
    goto __pyx_L3_bool_binop_done;
  }
  __Pyx_INCREF(__pyx_v_y);
  __pyx_t_1 = __pyx_v_y;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":237
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),             # <<<<<<<<<<<<<<
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_7lambda4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_7lambda4 = {"lambda4", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_7lambda4, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_7lambda4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda4 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_x,&__pyx_mstate_global->__pyx_n_u_y,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 237, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 237, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 237, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lambda4", 0) < (0)) __PYX_ERR(6, 237, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda4", 1, 2, 2, i); __PYX_ERR(6, 237, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 237, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 237, __pyx_L3_error)
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda4", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 237, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda4(__pyx_self, __pyx_v_x, __pyx_v_y);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda4(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda4", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyNumber_Xor(__pyx_v_x, __pyx_v_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":238
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),             # <<<<<<<<<<<<<<
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_8lambda5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_8lambda5 = {"lambda5", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_8lambda5, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_8lambda5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda5 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_x,&__pyx_mstate_global->__pyx_n_u_y,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 238, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 238, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 238, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lambda5", 0) < (0)) __PYX_ERR(6, 238, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda5", 1, 2, 2, i); __PYX_ERR(6, 238, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 238, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 238, __pyx_L3_error)
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda5", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 238, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda5(__pyx_self, __pyx_v_x, __pyx_v_y);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda5", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_x, __pyx_v_y, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 238, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":239
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_9lambda6(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_9lambda6 = {"lambda6", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_9lambda6, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_9lambda6(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda6 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_x,&__pyx_mstate_global->__pyx_n_u_y,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 239, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 239, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 239, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lambda6", 0) < (0)) __PYX_ERR(6, 239, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda6", 1, 2, 2, i); __PYX_ERR(6, 239, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 239, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 239, __pyx_L3_error)
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda6", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 239, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda6", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda6(__pyx_self, __pyx_v_x, __pyx_v_y);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda6(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda6", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_x, __pyx_v_y, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 239, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda6", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":241
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline ConditionalOperator factory(SELinuxPolicy policy, sepol.cond_expr_t *symbol):
 *         """Factory function for conditional operators."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_f_7setools_9policyrep_19ConditionalOperator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_expr_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_op = 0;
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *(*__pyx_t_6)(PyObject *);
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":244
 *     cdef inline ConditionalOperator factory(SELinuxPolicy policy, sepol.cond_expr_t *symbol):
 *         """Factory function for conditional operators."""
 *         cdef ConditionalOperator op = ConditionalOperator.__new__(ConditionalOperator)             # <<<<<<<<<<<<<<
 *         op.policy = policy
 *         op.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_ConditionalOperator(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalOperator), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 244, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_op = ((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":245
 *         """Factory function for conditional operators."""
 *         cdef ConditionalOperator op = ConditionalOperator.__new__(ConditionalOperator)
 *         op.policy = policy             # <<<<<<<<<<<<<<
 *         op.key = <uintptr_t>symbol
 *         op.unary = symbol.expr_type == sepol.COND_NOT
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_op->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_op->__pyx_base.policy);
  __pyx_v_op->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/boolcond.pxi":246
 *         cdef ConditionalOperator op = ConditionalOperator.__new__(ConditionalOperator)
 *         op.policy = policy
 *         op.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         op.unary = symbol.expr_type == sepol.COND_NOT
 *         op.text, op.precedence, op.evaluate = op._cond_expr_val_to_details[symbol.expr_type]
*/
  __pyx_v_op->__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/boolcond.pxi":247
 *         op.policy = policy
 *         op.key = <uintptr_t>symbol
 *         op.unary = symbol.expr_type == sepol.COND_NOT             # <<<<<<<<<<<<<<
 *         op.text, op.precedence, op.evaluate = op._cond_expr_val_to_details[symbol.expr_type]
 *         return op
*/
  __pyx_v_op->unary = (__pyx_v_symbol->expr_type == COND_NOT);

  /* "setools/policyrep/boolcond.pxi":248
 *         op.key = <uintptr_t>symbol
 *         op.unary = symbol.expr_type == sepol.COND_NOT
 *         op.text, op.precedence, op.evaluate = op._cond_expr_val_to_details[symbol.expr_type]             # <<<<<<<<<<<<<<
 *         return op
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_op), __pyx_mstate_global->__pyx_n_u_cond_expr_val_to_details); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_symbol->expr_type, uint32_t, 0, __Pyx_PyLong_From_uint32_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
    PyObject* sequence = __pyx_t_2;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(6, 248, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2);
      __Pyx_INCREF(__pyx_t_4);
    } else {
      __pyx_t_1 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
      if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 248, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
      if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 248, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 2, __Pyx_ReferenceSharing_SharedReference);
      if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 248, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_4);
    }
    #else
    __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5);
    index = 0; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < (0)) __PYX_ERR(6, 248, __pyx_L1_error)
    __pyx_t_6 = NULL;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(6, 248, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(6, 248, __pyx_L1_error)
  __pyx_t_7 = __Pyx_PyLong_As_int(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 248, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_op->text);
  __Pyx_DECREF(__pyx_v_op->text);
  __pyx_v_op->text = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_op->precedence = __pyx_t_7;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_op->evaluate);
  __Pyx_DECREF(__pyx_v_op->evaluate);
  __pyx_v_op->evaluate = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "setools/policyrep/boolcond.pxi":249
 *         op.unary = symbol.expr_type == sepol.COND_NOT
 *         op.text, op.precedence, op.evaluate = op._cond_expr_val_to_details[symbol.expr_type]
 *         return op             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_op);
  __pyx_r = __pyx_v_op;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":241
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline ConditionalOperator factory(SELinuxPolicy policy, sepol.cond_expr_t *symbol):
 *         """Factory function for conditional operators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_op);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":251
 *         return op
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.text
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_1__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator___str__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator___str__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/boolcond.pxi":252
 * 
 *     def __str__(self):
 *         return self.text             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->text);
  __pyx_r = __pyx_v_self->text;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":251
 *         return op
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.text
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":254
 *         return self.text
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_3statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_3statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_3statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_3statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_2statement(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_2statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/boolcond.pxi":255
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 255, __pyx_L1_error)

  /* "setools/policyrep/boolcond.pxi":254
 *         return self.text
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":225
 *     cdef:
 *         str text
 *         readonly int precedence             # <<<<<<<<<<<<<<
 *         # T/F the operator is unary
 *         readonly bint unary
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_10precedence_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_10precedence_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_10precedence___get__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_10precedence___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->precedence); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.precedence.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":227
 *         readonly int precedence
 *         # T/F the operator is unary
 *         readonly bint unary             # <<<<<<<<<<<<<<
 *         # stores a callable for evaluating
 *         # using the specified operands.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_5unary_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_5unary_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_5unary___get__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_5unary___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->unary); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.unary.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":231
 *         # using the specified operands.
 *         # see _cond_expr_val_to_eval
 *         readonly object evaluate             # <<<<<<<<<<<<<<
 * 
 *     _cond_expr_val_to_details = {
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_8evaluate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_8evaluate_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_8evaluate___get__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_8evaluate___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->evaluate);
  __pyx_r = __pyx_v_self->evaluate;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_10__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.evaluate, self.key, self.policy, self.precedence, self.text, self.unary)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_self->precedence); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_self->unary); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_self->evaluate);
  __Pyx_GIVEREF(__pyx_v_self->evaluate);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->evaluate) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->text);
  __Pyx_GIVEREF(__pyx_v_self->text);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_v_self->text) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_t_3) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.evaluate, self.key, self.policy, self.precedence, self.text, self.unary)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.evaluate, self.key, self.policy, self.precedence, self.text, self.unary)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.evaluate is not None or self.policy is not None or self.text is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.evaluate, self.key, self.policy, self.precedence, self.text, self.unary)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.evaluate is not None or self.policy is not None or self.text is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0x60d06d1, None), state
*/
  /*else*/ {
    __pyx_t_6 = (__pyx_v_self->evaluate != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->text != ((PyObject*)Py_None));
    __pyx_t_5 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.evaluate is not None or self.policy is not None or self.text is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0x60d06d1, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.evaluate is not None or self.policy is not None or self.text is not None
 *     if use_setstate:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0x60d06d1, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0x60d06d1, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConditionalOperat); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_101517009);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_101517009);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_101517009) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.evaluate is not None or self.policy is not None or self.text is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0x60d06d1, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0x60d06d1, None), state
 *     else:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0x60d06d1, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConditionalOperator__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConditionalOperat); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_101517009);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_101517009);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_101517009) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0x60d06d1, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConditionalOperator__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_12__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0x60d06d1, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConditionalOperator__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConditionalOperator__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0x60d06d1, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConditionalOperator__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":265
 *     """Iterate over Booleans in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Boolean iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_22BooleanHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":268
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Boolean iterators."""
 *         i = BooleanHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 268, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":269
 *         """Factory function for creating Boolean iterators."""
 *         i = BooleanHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/boolcond.pxi":270
 *         i = BooleanHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/boolcond.pxi":271
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 271, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":272
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":265
 *     """Iterate over Booleans in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Boolean iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.BooleanHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":274
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Boolean.factory(self.policy, <sepol.cond_bool_datum_t *>self.curr.datum)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_22BooleanHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/boolcond.pxi":275
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Boolean.factory(self.policy, <sepol.cond_bool_datum_t *>self.curr.datum)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":276
 *     def __next__(self):
 *         super().__next__()
 *         return Boolean.factory(self.policy, <sepol.cond_bool_datum_t *>self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_7Boolean_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((cond_bool_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":274
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Boolean.factory(self.policy, <sepol.cond_bool_datum_t *>self.curr.datum)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.BooleanHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_22BooleanHashtabIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.BooleanHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_22BooleanHashtabIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.BooleanHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.BooleanHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":287
 *         sepol.cond_node_t *curr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.cond_node_t *head):
 *         """Constraint iterator factory."""
*/

static PyObject *__pyx_f_7setools_9policyrep_19ConditionalIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_node_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":290
 *     cdef factory(SELinuxPolicy policy, sepol.cond_node_t *head):
 *         """Constraint iterator factory."""
 *         c = ConditionalIterator()             # <<<<<<<<<<<<<<
 *         c.policy = policy
 *         c.head = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 290, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":291
 *         """Constraint iterator factory."""
 *         c = ConditionalIterator()
 *         c.policy = policy             # <<<<<<<<<<<<<<
 *         c.head = head
 *         c.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_c->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_c->__pyx_base.policy);
  __pyx_v_c->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/boolcond.pxi":292
 *         c = ConditionalIterator()
 *         c.policy = policy
 *         c.head = head             # <<<<<<<<<<<<<<
 *         c.reset()
 *         return c
*/
  __pyx_v_c->head = __pyx_v_head;

  /* "setools/policyrep/boolcond.pxi":293
 *         c.policy = policy
 *         c.head = head
 *         c.reset()             # <<<<<<<<<<<<<<
 *         return c
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_c);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":294
 *         c.head = head
 *         c.reset()
 *         return c             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_c);
  __pyx_r = ((PyObject *)__pyx_v_c);
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":287
 *         sepol.cond_node_t *curr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.cond_node_t *head):
 *         """Constraint iterator factory."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConditionalIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":296
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalIterator___next__(((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  struct cond_node *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/boolcond.pxi":297
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (__pyx_v_self->curr == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/boolcond.pxi":298
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = Conditional.factory(self.policy, self.curr)
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/boolcond.pxi":297
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/boolcond.pxi":300
 *             raise StopIteration
 * 
 *         item = Conditional.factory(self.policy, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_11Conditional_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_self->curr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/boolcond.pxi":301
 * 
 *         item = Conditional.factory(self.policy, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
*/
  __pyx_t_4 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_4;

  /* "setools/policyrep/boolcond.pxi":302
 *         item = Conditional.factory(self.policy, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_item);
  __pyx_r = ((PyObject *)__pyx_v_item);
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":296
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.ConditionalIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":304
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_node_t *curr
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_19ConditionalIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_19ConditionalIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_19ConditionalIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self) {
  cond_node_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  cond_node_t *__pyx_t_1;
  int __pyx_t_2;
  struct cond_node *__pyx_t_3;

  /* "setools/policyrep/boolcond.pxi":307
 *         cdef:
 *             sepol.cond_node_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/boolcond.pxi":309
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/boolcond.pxi":310
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_curr != NULL);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/boolcond.pxi":311
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
*/
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/boolcond.pxi":312
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/boolcond.pxi":314
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":304
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_node_t *curr
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":316
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_19ConditionalIterator_4reset, "Reset the iterator back to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_19ConditionalIterator_4reset};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalIterator_4reset(((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  cond_node_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/boolcond.pxi":318
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/boolcond.pxi":316
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConditionalIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConditionalIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConditionalIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":329
 *         sepol.cond_expr_t *curr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.cond_expr_t *head):
 *         """Conditional expression iterator factory."""
*/

static PyObject *__pyx_f_7setools_9policyrep_23ConditionalExprIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_expr_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_e = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":332
 *     cdef factory(SELinuxPolicy policy, sepol.cond_expr_t *head):
 *         """Conditional expression iterator factory."""
 *         e = ConditionalExprIterator()             # <<<<<<<<<<<<<<
 *         e.policy = policy
 *         e.head = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 332, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_e = ((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":333
 *         """Conditional expression iterator factory."""
 *         e = ConditionalExprIterator()
 *         e.policy = policy             # <<<<<<<<<<<<<<
 *         e.head = head
 *         e.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_e->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_e->__pyx_base.policy);
  __pyx_v_e->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/boolcond.pxi":334
 *         e = ConditionalExprIterator()
 *         e.policy = policy
 *         e.head = head             # <<<<<<<<<<<<<<
 *         e.reset()
 *         return e
*/
  __pyx_v_e->head = __pyx_v_head;

  /* "setools/policyrep/boolcond.pxi":335
 *         e.policy = policy
 *         e.head = head
 *         e.reset()             # <<<<<<<<<<<<<<
 *         return e
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_e);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":336
 *         e.head = head
 *         e.reset()
 *         return e             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_e);
  __pyx_r = ((PyObject *)__pyx_v_e);
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":329
 *         sepol.cond_expr_t *curr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.cond_expr_t *head):
 *         """Conditional expression iterator factory."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConditionalExprIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":338
 *         return e
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_23ConditionalExprIterator___next__(((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  cond_bool_datum_t *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  struct cond_expr *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/boolcond.pxi":339
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (__pyx_v_self->curr == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/boolcond.pxi":340
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         if self.curr.expr_type == sepol.COND_BOOL:
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/boolcond.pxi":339
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/boolcond.pxi":342
 *             raise StopIteration
 * 
 *         if self.curr.expr_type == sepol.COND_BOOL:             # <<<<<<<<<<<<<<
 *             item = Boolean.factory(self.policy,
 *                                    self.policy.boolean_value_to_datum(self.curr.boolean - 1))
*/
  __pyx_t_1 = (__pyx_v_self->curr->expr_type == COND_BOOL);
  if (__pyx_t_1) {

    /* "setools/policyrep/boolcond.pxi":343
 * 
 *         if self.curr.expr_type == sepol.COND_BOOL:
 *             item = Boolean.factory(self.policy,             # <<<<<<<<<<<<<<
 *                                    self.policy.boolean_value_to_datum(self.curr.boolean - 1))
 *         else:
*/
    __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_2);

    /* "setools/policyrep/boolcond.pxi":344
 *         if self.curr.expr_type == sepol.COND_BOOL:
 *             item = Boolean.factory(self.policy,
 *                                    self.policy.boolean_value_to_datum(self.curr.boolean - 1))             # <<<<<<<<<<<<<<
 *         else:
 *             item = ConditionalOperator.factory(self.policy, self.curr)
*/
    __pyx_t_3 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_datum(__pyx_v_self->__pyx_base.policy, (__pyx_v_self->curr->COND_EXPR_T_RENAME_BOOL_NAME - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 344, __pyx_L1_error)

    /* "setools/policyrep/boolcond.pxi":343
 * 
 *         if self.curr.expr_type == sepol.COND_BOOL:
 *             item = Boolean.factory(self.policy,             # <<<<<<<<<<<<<<
 *                                    self.policy.boolean_value_to_datum(self.curr.boolean - 1))
 *         else:
*/
    __pyx_t_4 = ((PyObject *)__pyx_f_7setools_9policyrep_7Boolean_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_t_4);
    __pyx_t_4 = 0;

    /* "setools/policyrep/boolcond.pxi":342
 *             raise StopIteration
 * 
 *         if self.curr.expr_type == sepol.COND_BOOL:             # <<<<<<<<<<<<<<
 *             item = Boolean.factory(self.policy,
 *                                    self.policy.boolean_value_to_datum(self.curr.boolean - 1))
*/
    goto __pyx_L4;
  }

  /* "setools/policyrep/boolcond.pxi":346
 *                                    self.policy.boolean_value_to_datum(self.curr.boolean - 1))
 *         else:
 *             item = ConditionalOperator.factory(self.policy, self.curr)             # <<<<<<<<<<<<<<
 * 
 *         self.curr = self.curr.next
*/
  /*else*/ {
    __pyx_t_4 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_19ConditionalOperator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_4), __pyx_v_self->curr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 346, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_t_2);
    __pyx_t_2 = 0;
  }
  __pyx_L4:;

  /* "setools/policyrep/boolcond.pxi":348
 *             item = ConditionalOperator.factory(self.policy, self.curr)
 * 
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
*/
  __pyx_t_5 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_5;

  /* "setools/policyrep/boolcond.pxi":349
 * 
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_item);
  __pyx_r = ((PyObject *)__pyx_v_item);
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":338
 *         return e
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.ConditionalExprIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":351
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_expr_t *curr
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self) {
  cond_expr_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  cond_expr_t *__pyx_t_1;
  int __pyx_t_2;
  struct cond_expr *__pyx_t_3;

  /* "setools/policyrep/boolcond.pxi":354
 *         cdef:
 *             sepol.cond_expr_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/boolcond.pxi":356
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/boolcond.pxi":357
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_curr != NULL);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/boolcond.pxi":358
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
*/
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/boolcond.pxi":359
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/boolcond.pxi":361
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":351
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_expr_t *curr
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":363
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_23ConditionalExprIterator_4reset, "Reset the iterator back to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_23ConditionalExprIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_23ConditionalExprIterator_4reset};
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_4reset(((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  cond_expr_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/boolcond.pxi":365
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/boolcond.pxi":363
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_23ConditionalExprIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConditionalExprIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_23ConditionalExprIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConditionalExprIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConditionalExprIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":27
 *         readonly object child
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Bounds factory(SELinuxPolicy policy, parent, child):
 *         """Factory function for creating Bounds objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_f_7setools_9policyrep_6Bounds_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_parent, PyObject *__pyx_v_child) {
  struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_b = 0;
  struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/bounds.pxi":30
 *     cdef inline Bounds factory(SELinuxPolicy policy, parent, child):
 *         """Factory function for creating Bounds objects."""
 *         cdef Bounds b = Bounds.__new__(Bounds)             # <<<<<<<<<<<<<<
 *         b.policy = policy
 *         b.ruletype = BoundsRuletype.typebounds
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Bounds(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Bounds), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 30, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_b = ((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/bounds.pxi":31
 *         """Factory function for creating Bounds objects."""
 *         cdef Bounds b = Bounds.__new__(Bounds)
 *         b.policy = policy             # <<<<<<<<<<<<<<
 *         b.ruletype = BoundsRuletype.typebounds
 *         b.parent = parent
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_b->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_b->__pyx_base.policy);
  __pyx_v_b->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/bounds.pxi":32
 *         cdef Bounds b = Bounds.__new__(Bounds)
 *         b.policy = policy
 *         b.ruletype = BoundsRuletype.typebounds             # <<<<<<<<<<<<<<
 *         b.parent = parent
 *         b.child = child
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_BoundsRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_typebounds); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_b->ruletype);
  __Pyx_DECREF(__pyx_v_b->ruletype);
  __pyx_v_b->ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/bounds.pxi":33
 *         b.policy = policy
 *         b.ruletype = BoundsRuletype.typebounds
 *         b.parent = parent             # <<<<<<<<<<<<<<
 *         b.child = child
 *         return b
*/
  __Pyx_INCREF(__pyx_v_parent);
  __Pyx_GIVEREF(__pyx_v_parent);
  __Pyx_GOTREF(__pyx_v_b->parent);
  __Pyx_DECREF(__pyx_v_b->parent);
  __pyx_v_b->parent = __pyx_v_parent;

  /* "setools/policyrep/bounds.pxi":34
 *         b.ruletype = BoundsRuletype.typebounds
 *         b.parent = parent
 *         b.child = child             # <<<<<<<<<<<<<<
 *         return b
 * 
*/
  __Pyx_INCREF(__pyx_v_child);
  __Pyx_GIVEREF(__pyx_v_child);
  __Pyx_GOTREF(__pyx_v_b->child);
  __Pyx_DECREF(__pyx_v_b->child);
  __pyx_v_b->child = __pyx_v_child;

  /* "setools/policyrep/bounds.pxi":35
 *         b.parent = parent
 *         b.child = child
 *         return b             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_b);
  __pyx_r = __pyx_v_b;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":27
 *         readonly object child
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Bounds factory(SELinuxPolicy policy, parent, child):
 *         """Factory function for creating Bounds objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Bounds.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_b);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":37
 *         return b
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.child}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_6Bounds_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_6Bounds_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds___hash__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_6Bounds___hash__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[3];
  PyObject *__pyx_t_4 = NULL;
  Py_hash_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/bounds.pxi":38
 * 
 *     def __hash__(self):
 *         return hash(f"{self.ruletype}|{self.child}")             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->child, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_t_1;
  __pyx_t_3[1] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_3[2] = __pyx_t_2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(8, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = PyObject_Hash(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_hash_t)-1))) __PYX_ERR(8, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":37
 *         return b
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.child}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Bounds.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":40
 *         return hash(f"{self.ruletype}|{self.child}")
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.policy == other.policy \
 *             and self.ruletype == other.ruletype \
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_2__eq__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_2__eq__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/bounds.pxi":41
 * 
 *     def __eq__(self, other):
 *         return self.policy == other.policy \             # <<<<<<<<<<<<<<
 *             and self.ruletype == other.ruletype \
 *             and self.parent == other.parent \
*/
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/bounds.pxi":42
 *     def __eq__(self, other):
 *         return self.policy == other.policy \
 *             and self.ruletype == other.ruletype \             # <<<<<<<<<<<<<<
 *             and self.parent == other.parent \
 *             and self.child == other.child
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_policy); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.policy), __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(8, 41, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/bounds.pxi":43
 *         return self.policy == other.policy \
 *             and self.ruletype == other.ruletype \
 *             and self.parent == other.parent \             # <<<<<<<<<<<<<<
 *             and self.child == other.child
 * 
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_ruletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_self->ruletype, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(8, 42, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/bounds.pxi":44
 *             and self.ruletype == other.ruletype \
 *             and self.parent == other.parent \
 *             and self.child == other.child             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_parent); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->parent, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(8, 43, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_self->child, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":40
 *         return hash(f"{self.ruletype}|{self.child}")
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.policy == other.policy \
 *             and self.ruletype == other.ruletype \
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Bounds.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":46
 *             and self.child == other.child
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_4__lt__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_4__lt__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/bounds.pxi":48
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 48, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":46
 *             and self.child == other.child
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Bounds.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":50
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.parent} {self.child};"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_7statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6Bounds_7statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Bounds_7statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_7statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_6statement(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_6statement(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[6];
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/bounds.pxi":51
 * 
 *     def statement(self):
 *         return f"{self.ruletype} {self.parent} {self.child};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->parent, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->child, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_t_1;
  __pyx_t_4[1] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[2] = __pyx_t_2;
  __pyx_t_4[3] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[4] = __pyx_t_3;
  __pyx_t_4[5] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 6, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":50
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.parent} {self.child};"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Bounds.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":23
 * 
 *     cdef:
 *         readonly object ruletype             # <<<<<<<<<<<<<<
 *         readonly object parent
 *         readonly object child
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_8ruletype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_8ruletype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_8ruletype___get__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __pyx_r = __pyx_v_self->ruletype;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":24
 *     cdef:
 *         readonly object ruletype
 *         readonly object parent             # <<<<<<<<<<<<<<
 *         readonly object child
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_6parent_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_6parent_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_6parent___get__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_6parent___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->parent);
  __pyx_r = __pyx_v_self->parent;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":25
 *         readonly object ruletype
 *         readonly object parent
 *         readonly object child             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_5child_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_5child_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_5child___get__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_5child___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->child);
  __pyx_r = __pyx_v_self->child;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6Bounds_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Bounds_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.child, self.key, self.parent, self.policy, self.ruletype)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->child);
  __Pyx_GIVEREF(__pyx_v_self->child);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->child) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->parent);
  __Pyx_GIVEREF(__pyx_v_self->parent);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->parent) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __Pyx_GIVEREF(__pyx_v_self->ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.child, self.key, self.parent, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.child, self.key, self.parent, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.child is not None or self.parent is not None or self.policy is not None or self.ruletype is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.child, self.key, self.parent, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.child is not None or self.parent is not None or self.policy is not None or self.ruletype is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Bounds, (type(self), 0x4c46613, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->child != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->parent != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->ruletype != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.child is not None or self.parent is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Bounds, (type(self), 0x4c46613, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.child is not None or self.parent is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Bounds, (type(self), 0x4c46613, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Bounds, (type(self), 0x4c46613, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Bounds); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_79980051);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_79980051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_79980051) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.child is not None or self.parent is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Bounds, (type(self), 0x4c46613, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Bounds, (type(self), 0x4c46613, None), state
 *     else:
 *         return __pyx_unpickle_Bounds, (type(self), 0x4c46613, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Bounds__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Bounds); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_79980051);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_79980051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_79980051) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Bounds.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Bounds, (type(self), 0x4c46613, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Bounds__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6Bounds_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Bounds_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Bounds.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Bounds, (type(self), 0x4c46613, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Bounds__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Bounds__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Bounds, (type(self), 0x4c46613, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Bounds__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Bounds.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":61
 *     """Iterate over typebounds rules in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating typebounds iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_18TypeboundsIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/bounds.pxi":64
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating typebounds iterators."""
 *         i = TypeboundsIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeboundsIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 64, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/bounds.pxi":65
 *         """Factory function for creating typebounds iterators."""
 *         i = TypeboundsIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/bounds.pxi":66
 *         i = TypeboundsIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/bounds.pxi":67
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/bounds.pxi":68
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":61
 *     """Iterate over typebounds rules in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating typebounds iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TypeboundsIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":70
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_18TypeboundsIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  type_datum_t *__pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/bounds.pxi":72
 *     def __next__(self):
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()             # <<<<<<<<<<<<<<
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeboundsIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 72, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 72, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/bounds.pxi":74
 *         super().__next__()
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum             # <<<<<<<<<<<<<<
 *         while datum.flavor != sepol.TYPE_TYPE or datum.bounds == 0:
 *             super().__next__()
*/
  __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum);

  /* "setools/policyrep/bounds.pxi":75
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum
 *         while datum.flavor != sepol.TYPE_TYPE or datum.bounds == 0:             # <<<<<<<<<<<<<<
 *             super().__next__()
 *             datum = <sepol.type_datum_t *> self.curr.datum
*/
  while (1) {
    __pyx_t_7 = (__pyx_v_datum->flavor != TYPE_TYPE);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_datum->bounds == 0);
    __pyx_t_6 = __pyx_t_7;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_6) break;

    /* "setools/policyrep/bounds.pxi":76
 *         datum = <sepol.type_datum_t *> self.curr.datum
 *         while datum.flavor != sepol.TYPE_TYPE or datum.bounds == 0:
 *             super().__next__()             # <<<<<<<<<<<<<<
 *             datum = <sepol.type_datum_t *> self.curr.datum
 * 
*/
    __pyx_t_4 = NULL;
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeboundsIterator), ((PyObject *)__pyx_v_self)};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_3 = __pyx_t_2;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/bounds.pxi":77
 *         while datum.flavor != sepol.TYPE_TYPE or datum.bounds == 0:
 *             super().__next__()
 *             datum = <sepol.type_datum_t *> self.curr.datum             # <<<<<<<<<<<<<<
 * 
 *         return Bounds.factory(self.policy,
*/
    __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
  }

  /* "setools/policyrep/bounds.pxi":79
 *             datum = <sepol.type_datum_t *> self.curr.datum
 * 
 *         return Bounds.factory(self.policy,             # <<<<<<<<<<<<<<
 *             Type.factory(self.policy, self.policy.type_value_to_datum(datum.bounds - 1)),
 *             Type.factory(self.policy, datum))
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/bounds.pxi":80
 * 
 *         return Bounds.factory(self.policy,
 *             Type.factory(self.policy, self.policy.type_value_to_datum(datum.bounds - 1)),             # <<<<<<<<<<<<<<
 *             Type.factory(self.policy, datum))
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_8 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, (__pyx_v_datum->bounds - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 80, __pyx_L1_error)
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_t_8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/bounds.pxi":81
 *         return Bounds.factory(self.policy,
 *             Type.factory(self.policy, self.policy.type_value_to_datum(datum.bounds - 1)),
 *             Type.factory(self.policy, datum))             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_datum)); if (unlikely(!__pyx_t_4)) __PYX_ERR(8, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/bounds.pxi":79
 *             datum = <sepol.type_datum_t *> self.curr.datum
 * 
 *         return Bounds.factory(self.policy,             # <<<<<<<<<<<<<<
 *             Type.factory(self.policy, self.policy.type_value_to_datum(datum.bounds - 1)),
 *             Type.factory(self.policy, datum))
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_6Bounds_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_t_3, __pyx_t_4)); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":70
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeboundsIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":83
 *             Type.factory(self.policy, datum))
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.type_datum_t *datum
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_18TypeboundsIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_18TypeboundsIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_18TypeboundsIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_18TypeboundsIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  int __pyx_t_1;
  type_datum_t *__pyx_t_2;
  int __pyx_t_3;
  struct hashtab_node *__pyx_t_4;

  /* "setools/policyrep/bounds.pxi":87
 *             sepol.type_datum_t *datum
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             size_t count = 0
 * 
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/bounds.pxi":88
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/bounds.pxi":90
 *             size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_1 = (__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/bounds.pxi":91
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
*/
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/bounds.pxi":92
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and datum.bounds != 0:
*/
    while (1) {
      __pyx_t_1 = (__pyx_v_node != NULL);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/bounds.pxi":93
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and datum.bounds != 0:
 *                     count += 1
*/
      __pyx_t_1 = (__pyx_v_node != 0);
      if (__pyx_t_1) {
        __pyx_t_2 = ((type_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/bounds.pxi":94
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and datum.bounds != 0:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      __pyx_t_3 = (__pyx_v_datum != NULL);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = (__pyx_v_datum->flavor == TYPE_TYPE);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = (__pyx_v_datum->bounds != 0);
      __pyx_t_1 = __pyx_t_3;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/bounds.pxi":95
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and datum.bounds != 0:
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/bounds.pxi":94
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and datum.bounds != 0:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      }

      /* "setools/policyrep/bounds.pxi":97
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_4 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_4;
    }

    /* "setools/policyrep/bounds.pxi":99
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/bounds.pxi":101
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":83
 *             Type.factory(self.policy, datum))
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.type_datum_t *datum
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":103
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t * datum
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18TypeboundsIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_18TypeboundsIterator_4reset(((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/bounds.pxi":106
 *         cdef sepol.type_datum_t * datum
 * 
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeboundsIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/bounds.pxi":109
 * 
 *         # advance over any attributes or aliases
 *         datum = <sepol.type_datum_t *> self.node.datum             # <<<<<<<<<<<<<<
 *         while datum != NULL and datum.flavor != sepol.TYPE_TYPE and datum.bounds == 0:
 *             self._next_node()
*/
  __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.node->datum);

  /* "setools/policyrep/bounds.pxi":110
 *         # advance over any attributes or aliases
 *         datum = <sepol.type_datum_t *> self.node.datum
 *         while datum != NULL and datum.flavor != sepol.TYPE_TYPE and datum.bounds == 0:             # <<<<<<<<<<<<<<
 *             self._next_node()
 *             datum = <sepol.type_datum_t *> self.node.datum
*/
  while (1) {
    __pyx_t_7 = (__pyx_v_datum != NULL);
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_datum->flavor != TYPE_TYPE);
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_datum->bounds == 0);
    __pyx_t_6 = __pyx_t_7;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_6) break;

    /* "setools/policyrep/bounds.pxi":111
 *         datum = <sepol.type_datum_t *> self.node.datum
 *         while datum != NULL and datum.flavor != sepol.TYPE_TYPE and datum.bounds == 0:
 *             self._next_node()             # <<<<<<<<<<<<<<
 *             datum = <sepol.type_datum_t *> self.node.datum
*/
    ((struct __pyx_vtabstruct_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self)); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 111, __pyx_L1_error)

    /* "setools/policyrep/bounds.pxi":112
 *         while datum != NULL and datum.flavor != sepol.TYPE_TYPE and datum.bounds == 0:
 *             self._next_node()
 *             datum = <sepol.type_datum_t *> self.node.datum             # <<<<<<<<<<<<<<
*/
    __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.node->datum);
  }

  /* "setools/policyrep/bounds.pxi":103
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t * datum
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeboundsIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18TypeboundsIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_18TypeboundsIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeboundsIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18TypeboundsIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.TypeboundsIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_18TypeboundsIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeboundsIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":36
 *         readonly ConstraintExpression expression
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def perms(self):
 *         raise NotImplementedError
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_5perms_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint_5perms___get__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_5perms___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/constraint.pxi":38
 *     @property
 *     def perms(self):
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_NotImplementedError))), 0, 0, 0);
  __PYX_ERR(2, 38, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":36
 *         readonly ConstraintExpression expression
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def perms(self):
 *         raise NotImplementedError
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.BaseConstraint.perms.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":32
 * 
 *     cdef:
 *         readonly object ruletype             # <<<<<<<<<<<<<<
 *         readonly object tclass
 *         readonly ConstraintExpression expression
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_8ruletype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_8ruletype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint_8ruletype___get__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __pyx_r = __pyx_v_self->ruletype;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":33
 *     cdef:
 *         readonly object ruletype
 *         readonly object tclass             # <<<<<<<<<<<<<<
 *         readonly ConstraintExpression expression
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_6tclass_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_6tclass___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->tclass);
  __pyx_r = __pyx_v_self->tclass;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":34
 *         readonly object ruletype
 *         readonly object tclass
 *         readonly ConstraintExpression expression             # <<<<<<<<<<<<<<
 * 
 *     @property
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_10expression_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_10expression_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint_10expression___get__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_10expression___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->expression);
  __pyx_r = ((PyObject *)__pyx_v_self->expression);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14BaseConstraint_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14BaseConstraint_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint___reduce_cython__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint___reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->expression);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->expression);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->expression)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __Pyx_GIVEREF(__pyx_v_self->ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->tclass);
  __Pyx_GIVEREF(__pyx_v_self->tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->tclass) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0x970accd, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->expression) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->ruletype != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->tclass != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0x970accd, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0x970accd, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0x970accd, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseConstraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_158379213);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_158379213);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_158379213) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0x970accd, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0x970accd, None), state
 *     else:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0x970accd, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseConstraint__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseConstraint); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_158379213);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_158379213);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_158379213) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.BaseConstraint.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0x970accd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseConstraint__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14BaseConstraint_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14BaseConstraint_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.BaseConstraint.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint_2__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_2__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0x970accd, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseConstraint__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseConstraint__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0x970accd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseConstraint__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.BaseConstraint.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":47
 *     cdef readonly frozenset perms
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):
 *         """Factory function for creating Constraint objects."""
*/

static PyObject *__pyx_f_7setools_9policyrep_10Constraint_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_c = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":50
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):
 *         """Factory function for creating Constraint objects."""
 *         cdef Constraint c = Constraint.__new__(Constraint)             # <<<<<<<<<<<<<<
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Constraint(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Constraint), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 50, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":51
 *         """Factory function for creating Constraint objects."""
 *         cdef Constraint c = Constraint.__new__(Constraint)
 *         c.policy = policy             # <<<<<<<<<<<<<<
 *         c.key = <uintptr_t>symbol
 *         c.tclass = tclass
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy);
  __pyx_v_c->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":52
 *         cdef Constraint c = Constraint.__new__(Constraint)
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         c.tclass = tclass
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))
*/
  __pyx_v_c->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/constraint.pxi":53
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol
 *         c.tclass = tclass             # <<<<<<<<<<<<<<
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_tclass);
  __Pyx_GOTREF(__pyx_v_c->__pyx_base.tclass);
  __Pyx_DECREF(__pyx_v_c->__pyx_base.tclass);
  __pyx_v_c->__pyx_base.tclass = ((PyObject *)__pyx_v_tclass);

  /* "setools/policyrep/constraint.pxi":54
 *         c.key = <uintptr_t>symbol
 *         c.tclass = tclass
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))             # <<<<<<<<<<<<<<
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \
*/
  __pyx_t_1 = __pyx_f_7setools_9policyrep_24PermissionVectorIterator_factory(__pyx_v_policy, __pyx_v_tclass, __pyx_v_symbol->permissions); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyFrozenSet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_c->perms);
  __Pyx_DECREF(__pyx_v_c->perms);
  __pyx_v_c->perms = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":55
 *         c.tclass = tclass
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)             # <<<<<<<<<<<<<<
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \
 *             else ConstraintRuletype.constrain
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_20ConstraintExpression_factory(__pyx_v_policy, __pyx_v_symbol->expr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_c->__pyx_base.expression);
  __Pyx_DECREF((PyObject *)__pyx_v_c->__pyx_base.expression);
  __pyx_v_c->__pyx_base.expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":56
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \             # <<<<<<<<<<<<<<
 *             else ConstraintRuletype.constrain
 *         return c
*/
  if (__pyx_v_c->__pyx_base.expression->mls) {
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_mlsconstrain); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {

    /* "setools/policyrep/constraint.pxi":57
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \
 *             else ConstraintRuletype.constrain             # <<<<<<<<<<<<<<
 *         return c
 * 
*/
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 57, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_constrain); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 57, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_2 = __pyx_t_1;
    __pyx_t_1 = 0;
  }

  /* "setools/policyrep/constraint.pxi":56
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \             # <<<<<<<<<<<<<<
 *             else ConstraintRuletype.constrain
 *         return c
*/
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_c->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_c->__pyx_base.ruletype);
  __pyx_v_c->__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":58
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \
 *             else ConstraintRuletype.constrain
 *         return c             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_c);
  __pyx_r = ((PyObject *)__pyx_v_c);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":47
 *     cdef readonly frozenset perms
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):
 *         """Factory function for creating Constraint objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Constraint.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":60
 *         return c
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if len(self.perms) > 1:
 *             perms = f"{{ {' '.join(sorted(self.perms))} }}"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10Constraint_1statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10Constraint_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_10Constraint_statement(((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_statement(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self) {
  PyObject *__pyx_v_perms = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[3];
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8[8];
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/constraint.pxi":61
 * 
 *     def statement(self):
 *         if len(self.perms) > 1:             # <<<<<<<<<<<<<<
 *             perms = f"{{ {' '.join(sorted(self.perms))} }}"
 *         else:
*/
  __pyx_t_1 = __pyx_v_self->perms;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(2, 61, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PySet_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 > 1);
  if (__pyx_t_3) {

    /* "setools/policyrep/constraint.pxi":62
 *     def statement(self):
 *         if len(self.perms) > 1:
 *             perms = f"{{ {' '.join(sorted(self.perms))} }}"             # <<<<<<<<<<<<<<
 *         else:
 *             # convert to list since sets cannot be indexed
*/
    __pyx_t_1 = __pyx_v_self->perms;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_4 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely((PyList_Sort(__pyx_t_4) < 0))) __PYX_ERR(2, 62, __pyx_L1_error)
    __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u__6;
    __pyx_t_5[1] = __pyx_t_1;
    __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u__7;
    __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, 2 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
    if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_perms = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "setools/policyrep/constraint.pxi":61
 * 
 *     def statement(self):
 *         if len(self.perms) > 1:             # <<<<<<<<<<<<<<
 *             perms = f"{{ {' '.join(sorted(self.perms))} }}"
 *         else:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/constraint.pxi":65
 *         else:
 *             # convert to list since sets cannot be indexed
 *             perms = list(self.perms)[0]             # <<<<<<<<<<<<<<
 * 
 *         return f"{self.ruletype} {self.tclass} {perms} ({self.expression});"
*/
  /*else*/ {
    __pyx_t_4 = PySequence_List(__pyx_v_self->perms); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_t_4, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_perms = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "setools/policyrep/constraint.pxi":67
 *             perms = list(self.perms)[0]
 * 
 *         return f"{self.ruletype} {self.tclass} {perms} ({self.expression});"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.tclass, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_perms, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.expression), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8[0] = __pyx_t_1;
  __pyx_t_8[1] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_8[2] = __pyx_t_4;
  __pyx_t_8[3] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_8[4] = __pyx_t_6;
  __pyx_t_8[5] = __pyx_mstate_global->__pyx_kp_u__8;
  __pyx_t_8[6] = __pyx_t_7;
  __pyx_t_8[7] = __pyx_mstate_global->__pyx_kp_u__9;
  __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_8, 8, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 2 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7));
  if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":60
 *         return c
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if len(self.perms) > 1:
 *             perms = f"{{ {' '.join(sorted(self.perms))} }}"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.Constraint.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_perms);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":45
 *     """A constraint rule (constrain/mlsconstrain)."""
 * 
 *     cdef readonly frozenset perms             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_5perms_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10Constraint_5perms___get__(((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_5perms___get__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->perms);
  __pyx_r = __pyx_v_self->perms;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10Constraint_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10Constraint_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_10Constraint_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.perms, self.policy, self.ruletype, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.expression);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.expression);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.expression)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->perms);
  __Pyx_GIVEREF(__pyx_v_self->perms);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->perms) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->__pyx_base.ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.tclass);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_v_self->__pyx_base.tclass) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.perms, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.perms, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.expression is not None or self.perms is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.perms, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.expression is not None or self.perms is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Constraint, (type(self), 0x948236a, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.expression) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->perms != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.tclass != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.perms is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Constraint, (type(self), 0x948236a, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.expression is not None or self.perms is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Constraint, (type(self), 0x948236a, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Constraint, (type(self), 0x948236a, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_155722602);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_155722602);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_155722602) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.perms is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Constraint, (type(self), 0x948236a, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Constraint, (type(self), 0x948236a, None), state
 *     else:
 *         return __pyx_unpickle_Constraint, (type(self), 0x948236a, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Constraint__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Constraint); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_155722602);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_155722602);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_155722602) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Constraint.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Constraint, (type(self), 0x948236a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Constraint__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10Constraint_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10Constraint_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Constraint.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10Constraint_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Constraint, (type(self), 0x948236a, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Constraint__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Constraint__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Constraint, (type(self), 0x948236a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Constraint__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Constraint.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":74
 *     """A validatetrans rule (validatetrans/mlsvalidatetrans)."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):
 *         """Factory function for creating Validatetrans objects."""
*/

static PyObject *__pyx_f_7setools_9policyrep_13Validatetrans_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_v = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":77
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):
 *         """Factory function for creating Validatetrans objects."""
 *         cdef Validatetrans v = Validatetrans.__new__(Validatetrans)             # <<<<<<<<<<<<<<
 *         v.policy = policy
 *         v.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Validatetrans(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Validatetrans), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 77, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_v = ((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":78
 *         """Factory function for creating Validatetrans objects."""
 *         cdef Validatetrans v = Validatetrans.__new__(Validatetrans)
 *         v.policy = policy             # <<<<<<<<<<<<<<
 *         v.key = <uintptr_t>symbol
 *         v.tclass = tclass
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_v->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_v->__pyx_base.__pyx_base.policy);
  __pyx_v_v->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":79
 *         cdef Validatetrans v = Validatetrans.__new__(Validatetrans)
 *         v.policy = policy
 *         v.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         v.tclass = tclass
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)
*/
  __pyx_v_v->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/constraint.pxi":80
 *         v.policy = policy
 *         v.key = <uintptr_t>symbol
 *         v.tclass = tclass             # <<<<<<<<<<<<<<
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \
*/
  __Pyx_INCREF((PyObject *)__pyx_v_tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_tclass);
  __Pyx_GOTREF(__pyx_v_v->__pyx_base.tclass);
  __Pyx_DECREF(__pyx_v_v->__pyx_base.tclass);
  __pyx_v_v->__pyx_base.tclass = ((PyObject *)__pyx_v_tclass);

  /* "setools/policyrep/constraint.pxi":81
 *         v.key = <uintptr_t>symbol
 *         v.tclass = tclass
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)             # <<<<<<<<<<<<<<
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \
 *             ConstraintRuletype.validatetrans
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_20ConstraintExpression_factory(__pyx_v_policy, __pyx_v_symbol->expr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_v->__pyx_base.expression);
  __Pyx_DECREF((PyObject *)__pyx_v_v->__pyx_base.expression);
  __pyx_v_v->__pyx_base.expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":82
 *         v.tclass = tclass
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \             # <<<<<<<<<<<<<<
 *             ConstraintRuletype.validatetrans
 *         return v
*/
  if (__pyx_v_v->__pyx_base.expression->mls) {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_mlsvalidatetrans); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {

    /* "setools/policyrep/constraint.pxi":83
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \
 *             ConstraintRuletype.validatetrans             # <<<<<<<<<<<<<<
 *         return v
 * 
*/
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_validatetrans); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_1 = __pyx_t_2;
    __pyx_t_2 = 0;
  }

  /* "setools/policyrep/constraint.pxi":82
 *         v.tclass = tclass
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \             # <<<<<<<<<<<<<<
 *             ConstraintRuletype.validatetrans
 *         return v
*/
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_v->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_v->__pyx_base.ruletype);
  __pyx_v_v->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":84
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \
 *             ConstraintRuletype.validatetrans
 *         return v             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_v);
  __pyx_r = ((PyObject *)__pyx_v_v);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":74
 *     """A validatetrans rule (validatetrans/mlsvalidatetrans)."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):
 *         """Factory function for creating Validatetrans objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Validatetrans.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_v);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":86
 *         return v
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def perms(self):
 *         raise ConstraintUseError(f"{self.ruletype} rules do not have permissions.")
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_5perms_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13Validatetrans_5perms___get__(((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_5perms___get__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/constraint.pxi":88
 *     @property
 *     def perms(self):
 *         raise ConstraintUseError(f"{self.ruletype} rules do not have permissions.")             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ConstraintUseError); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_rules_do_not_have_permissions); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(2, 88, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":86
 *         return v
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def perms(self):
 *         raise ConstraintUseError(f"{self.ruletype} rules do not have permissions.")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Validatetrans.perms.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":90
 *         raise ConstraintUseError(f"{self.ruletype} rules do not have permissions.")
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.tclass} ({self.expression});"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13Validatetrans_1statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Validatetrans_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13Validatetrans_statement(((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_statement(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[6];
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/constraint.pxi":91
 * 
 *     def statement(self):
 *         return f"{self.ruletype} {self.tclass} ({self.expression});"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.tclass, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.expression), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_t_1;
  __pyx_t_4[1] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[2] = __pyx_t_2;
  __pyx_t_4[3] = __pyx_mstate_global->__pyx_kp_u__8;
  __pyx_t_4[4] = __pyx_t_3;
  __pyx_t_4[5] = __pyx_mstate_global->__pyx_kp_u__9;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 6, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 2 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":90
 *         raise ConstraintUseError(f"{self.ruletype} rules do not have permissions.")
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.tclass} ({self.expression});"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Validatetrans.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13Validatetrans_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Validatetrans_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13Validatetrans_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.expression);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.expression);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.expression)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->__pyx_base.ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.tclass);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->__pyx_base.tclass) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0x970accd, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.expression) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.tclass != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Validatetrans, (type(self), 0x970accd, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0x970accd, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0x970accd, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Validatetrans); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_158379213);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_158379213);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_158379213) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Validatetrans, (type(self), 0x970accd, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Validatetrans, (type(self), 0x970accd, None), state
 *     else:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0x970accd, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Validatetrans__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Validatetrans); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_158379213);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_158379213);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_158379213) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Validatetrans.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0x970accd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Validatetrans__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13Validatetrans_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Validatetrans_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Validatetrans.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13Validatetrans_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Validatetrans, (type(self), 0x970accd, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Validatetrans__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Validatetrans__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0x970accd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Validatetrans__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Validatetrans.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":116
 *     # the l1, h1, etc. symbols
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline ConstraintExpression factory(SELinuxPolicy policy, sepol.constraint_expr_t *symbol):
 *         """Factory function for creating ConstraintExpression objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_f_7setools_9policyrep_20ConstraintExpression_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_e = 0;
  PyObject *__pyx_v_users = 0;
  PyObject *__pyx_v_roles = 0;
  PyObject *__pyx_v_types = 0;
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_expr_node = 0;
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":120
 *         """Factory function for creating ConstraintExpression objects."""
 *         cdef:
 *             ConstraintExpression e = ConstraintExpression.__new__(ConstraintExpression)             # <<<<<<<<<<<<<<
 *             list users = []
 *             list roles = []
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_ConstraintExpression(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExpression), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_e = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":121
 *         cdef:
 *             ConstraintExpression e = ConstraintExpression.__new__(ConstraintExpression)
 *             list users = []             # <<<<<<<<<<<<<<
 *             list roles = []
 *             list types = []
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_users = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":122
 *             ConstraintExpression e = ConstraintExpression.__new__(ConstraintExpression)
 *             list users = []
 *             list roles = []             # <<<<<<<<<<<<<<
 *             list types = []
 *             ConstraintExprNode expr_node
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_roles = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":123
 *             list users = []
 *             list roles = []
 *             list types = []             # <<<<<<<<<<<<<<
 *             ConstraintExprNode expr_node
 * 
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_types = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":126
 *             ConstraintExprNode expr_node
 * 
 *         e.policy = policy             # <<<<<<<<<<<<<<
 * 
 *         e._postfix = []
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_e->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_e->__pyx_base.policy);
  __pyx_v_e->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":128
 *         e.policy = policy
 * 
 *         e._postfix = []             # <<<<<<<<<<<<<<
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):
 *             if expr_node.mls:
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_e->_postfix);
  __Pyx_DECREF(__pyx_v_e->_postfix);
  __pyx_v_e->_postfix = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":129
 * 
 *         e._postfix = []
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):             # <<<<<<<<<<<<<<
 *             if expr_node.mls:
 *                 e.mls = 1
*/
  __pyx_t_1 = __pyx_f_7setools_9policyrep_22ConstraintExprIterator_factory(__pyx_v_policy, __pyx_v_symbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 129, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 129, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_3;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 129, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3);
        #endif
        ++__pyx_t_3;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 129, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 129, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode))))) __PYX_ERR(2, 129, __pyx_L1_error)
    __Pyx_XDECREF_SET(__pyx_v_expr_node, ((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/constraint.pxi":130
 *         e._postfix = []
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):
 *             if expr_node.mls:             # <<<<<<<<<<<<<<
 *                 e.mls = 1
 * 
*/
    if (__pyx_v_expr_node->mls) {

      /* "setools/policyrep/constraint.pxi":131
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):
 *             if expr_node.mls:
 *                 e.mls = 1             # <<<<<<<<<<<<<<
 * 
 *             if expr_node.types:
*/
      __pyx_v_e->mls = 1;

      /* "setools/policyrep/constraint.pxi":130
 *         e._postfix = []
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):
 *             if expr_node.mls:             # <<<<<<<<<<<<<<
 *                 e.mls = 1
 * 
*/
    }

    /* "setools/policyrep/constraint.pxi":133
 *                 e.mls = 1
 * 
 *             if expr_node.types:             # <<<<<<<<<<<<<<
 *                 types.extend(expr_node.names)
 *             elif expr_node.roles:
*/
    if (__pyx_v_expr_node->types) {

      /* "setools/policyrep/constraint.pxi":134
 * 
 *             if expr_node.types:
 *                 types.extend(expr_node.names)             # <<<<<<<<<<<<<<
 *             elif expr_node.roles:
 *                 roles.extend(expr_node.names)
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_expr_node), __pyx_mstate_global->__pyx_n_u_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 134, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyList_Extend(__pyx_v_types, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 134, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/constraint.pxi":133
 *                 e.mls = 1
 * 
 *             if expr_node.types:             # <<<<<<<<<<<<<<
 *                 types.extend(expr_node.names)
 *             elif expr_node.roles:
*/
      goto __pyx_L6;
    }

    /* "setools/policyrep/constraint.pxi":135
 *             if expr_node.types:
 *                 types.extend(expr_node.names)
 *             elif expr_node.roles:             # <<<<<<<<<<<<<<
 *                 roles.extend(expr_node.names)
 *             elif expr_node.users:
*/
    if (__pyx_v_expr_node->roles) {

      /* "setools/policyrep/constraint.pxi":136
 *                 types.extend(expr_node.names)
 *             elif expr_node.roles:
 *                 roles.extend(expr_node.names)             # <<<<<<<<<<<<<<
 *             elif expr_node.users:
 *                 users.extend(expr_node.names)
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_expr_node), __pyx_mstate_global->__pyx_n_u_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyList_Extend(__pyx_v_roles, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 136, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/constraint.pxi":135
 *             if expr_node.types:
 *                 types.extend(expr_node.names)
 *             elif expr_node.roles:             # <<<<<<<<<<<<<<
 *                 roles.extend(expr_node.names)
 *             elif expr_node.users:
*/
      goto __pyx_L6;
    }

    /* "setools/policyrep/constraint.pxi":137
 *             elif expr_node.roles:
 *                 roles.extend(expr_node.names)
 *             elif expr_node.users:             # <<<<<<<<<<<<<<
 *                 users.extend(expr_node.names)
 * 
*/
    if (__pyx_v_expr_node->users) {

      /* "setools/policyrep/constraint.pxi":138
 *                 roles.extend(expr_node.names)
 *             elif expr_node.users:
 *                 users.extend(expr_node.names)             # <<<<<<<<<<<<<<
 * 
 *             e._postfix.extend(expr_node)
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_expr_node), __pyx_mstate_global->__pyx_n_u_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 138, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyList_Extend(__pyx_v_users, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 138, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/constraint.pxi":137
 *             elif expr_node.roles:
 *                 roles.extend(expr_node.names)
 *             elif expr_node.users:             # <<<<<<<<<<<<<<
 *                 users.extend(expr_node.names)
 * 
*/
    }
    __pyx_L6:;

    /* "setools/policyrep/constraint.pxi":140
 *                 users.extend(expr_node.names)
 * 
 *             e._postfix.extend(expr_node)             # <<<<<<<<<<<<<<
 * 
 *         e.users = frozenset(users)
*/
    if (unlikely(__pyx_v_e->_postfix == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend");
      __PYX_ERR(2, 140, __pyx_L1_error)
    }
    __pyx_t_5 = __Pyx_PyList_Extend(__pyx_v_e->_postfix, ((PyObject *)__pyx_v_expr_node)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 140, __pyx_L1_error)

    /* "setools/policyrep/constraint.pxi":129
 * 
 *         e._postfix = []
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):             # <<<<<<<<<<<<<<
 *             if expr_node.mls:
 *                 e.mls = 1
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":142
 *             e._postfix.extend(expr_node)
 * 
 *         e.users = frozenset(users)             # <<<<<<<<<<<<<<
 *         e.roles = frozenset(roles)
 *         e.types = frozenset(types)
*/
  __pyx_t_2 = __Pyx_PyFrozenSet_New(__pyx_v_users); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_e->users);
  __Pyx_DECREF(__pyx_v_e->users);
  __pyx_v_e->users = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":143
 * 
 *         e.users = frozenset(users)
 *         e.roles = frozenset(roles)             # <<<<<<<<<<<<<<
 *         e.types = frozenset(types)
 * 
*/
  __pyx_t_2 = __Pyx_PyFrozenSet_New(__pyx_v_roles); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_e->roles);
  __Pyx_DECREF(__pyx_v_e->roles);
  __pyx_v_e->roles = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":144
 *         e.users = frozenset(users)
 *         e.roles = frozenset(roles)
 *         e.types = frozenset(types)             # <<<<<<<<<<<<<<
 * 
 *         return e
*/
  __pyx_t_2 = __Pyx_PyFrozenSet_New(__pyx_v_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_e->types);
  __Pyx_DECREF(__pyx_v_e->types);
  __pyx_v_e->types = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":146
 *         e.types = frozenset(types)
 * 
 *         return e             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_e);
  __pyx_r = __pyx_v_e;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":116
 *     # the l1, h1, etc. symbols
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline ConstraintExpression factory(SELinuxPolicy policy, sepol.constraint_expr_t *symbol):
 *         """Factory function for creating ConstraintExpression objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_e);
  __Pyx_XDECREF(__pyx_v_users);
  __Pyx_XDECREF(__pyx_v_roles);
  __Pyx_XDECREF(__pyx_v_types);
  __Pyx_XDECREF((PyObject *)__pyx_v_expr_node);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":148
 *         return e
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         cdef list ret = []
 *         for item in self.infix():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_1__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression___str__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___2generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":153
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:
 *                     ret.append(f"{{ {' '.join(str(j) for j in item)} }} ")             # <<<<<<<<<<<<<<
 *                 else:
 *                     ret.append(f"{' '.join(str(j) for j in item)}")
*/

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_1_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 153, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___2generator13, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_str___locals_genexpr, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 153, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__str__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___2generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 153, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(2, 153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(2, 153, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 153, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 153, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 153, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 153, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 153, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_j);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_j, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_cur_scope->__pyx_v_j); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_4))) __PYX_ERR(2, 153, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___5generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":155
 *                     ret.append(f"{{ {' '.join(str(j) for j in item)} }} ")
 *                 else:
 *                     ret.append(f"{' '.join(str(j) for j in item)}")             # <<<<<<<<<<<<<<
 *             else:
 *                 ret.append(item)
*/

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___3genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_2_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 155, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___5generator14, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_str___locals_genexpr, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 155, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__str__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___5generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 155, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(2, 155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(2, 155, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 155, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 155, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 155, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 155, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 155, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_j);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_j, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_cur_scope->__pyx_v_j); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_4))) __PYX_ERR(2, 155, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":148
 *         return e
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         cdef list ret = []
 *         for item in self.infix():
*/

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression___str__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_v_ret = 0;
  PyObject *__pyx_v_item = NULL;
  PyObject *__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___2generator13 = 0;
  PyObject *__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___5generator14 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9[3];
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/constraint.pxi":149
 * 
 *     def __str__(self):
 *         cdef list ret = []             # <<<<<<<<<<<<<<
 *         for item in self.infix():
 *             if isinstance(item, frozenset):
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ret = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":150
 *     def __str__(self):
 *         cdef list ret = []
 *         for item in self.infix():             # <<<<<<<<<<<<<<
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_infix, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 150, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 150, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 150, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 150, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 150, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/constraint.pxi":151
 *         cdef list ret = []
 *         for item in self.infix():
 *             if isinstance(item, frozenset):             # <<<<<<<<<<<<<<
 *                 if len(item) > 1:
 *                     ret.append(f"{{ {' '.join(str(j) for j in item)} }} ")
*/
    __pyx_t_6 = PyFrozenSet_Check(__pyx_v_item); 
    if (__pyx_t_6) {

      /* "setools/policyrep/constraint.pxi":152
 *         for item in self.infix():
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:             # <<<<<<<<<<<<<<
 *                     ret.append(f"{{ {' '.join(str(j) for j in item)} }} ")
 *                 else:
*/
      __pyx_t_7 = PyObject_Length(__pyx_v_item); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 152, __pyx_L1_error)
      __pyx_t_6 = (__pyx_t_7 > 1);
      if (__pyx_t_6) {

        /* "setools/policyrep/constraint.pxi":153
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:
 *                     ret.append(f"{{ {' '.join(str(j) for j in item)} }} ")             # <<<<<<<<<<<<<<
 *                 else:
 *                     ret.append(f"{' '.join(str(j) for j in item)}")
*/
        __pyx_t_1 = __pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___genexpr(NULL, __pyx_v_item); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 153, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = __Pyx_Generator_GetInlinedResult(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 153, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 153, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__6;
        __pyx_t_9[1] = __pyx_t_1;
        __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u__10;
        __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_9, 3, 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 3, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
        if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 153, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_8); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(2, 153, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "setools/policyrep/constraint.pxi":152
 *         for item in self.infix():
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:             # <<<<<<<<<<<<<<
 *                     ret.append(f"{{ {' '.join(str(j) for j in item)} }} ")
 *                 else:
*/
        goto __pyx_L6;
      }

      /* "setools/policyrep/constraint.pxi":155
 *                     ret.append(f"{{ {' '.join(str(j) for j in item)} }} ")
 *                 else:
 *                     ret.append(f"{' '.join(str(j) for j in item)}")             # <<<<<<<<<<<<<<
 *             else:
 *                 ret.append(item)
*/
      /*else*/ {
        __pyx_t_8 = __pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___3genexpr(NULL, __pyx_v_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 155, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_1 = __Pyx_Generator_GetInlinedResult(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 155, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_8); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(2, 155, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_L6:;

      /* "setools/policyrep/constraint.pxi":151
 *         cdef list ret = []
 *         for item in self.infix():
 *             if isinstance(item, frozenset):             # <<<<<<<<<<<<<<
 *                 if len(item) > 1:
 *                     ret.append(f"{{ {' '.join(str(j) for j in item)} }} ")
*/
      goto __pyx_L5;
    }

    /* "setools/policyrep/constraint.pxi":157
 *                     ret.append(f"{' '.join(str(j) for j in item)}")
 *             else:
 *                 ret.append(item)             # <<<<<<<<<<<<<<
 * 
 *         return " ".join(ret)
*/
    /*else*/ {
      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_v_item); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(2, 157, __pyx_L1_error)
    }
    __pyx_L5:;

    /* "setools/policyrep/constraint.pxi":150
 *     def __str__(self):
 *         cdef list ret = []
 *         for item in self.infix():             # <<<<<<<<<<<<<<
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":159
 *                 ret.append(item)
 * 
 *         return " ".join(ret)             # <<<<<<<<<<<<<<
 * 
 *     def __getitem__(self, idx):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_v_ret); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":148
 *         return e
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         cdef list ret = []
 *         for item in self.infix():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___2generator13);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___5generator14);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":161
 *         return " ".join(ret)
 * 
 *     def __getitem__(self, idx):             # <<<<<<<<<<<<<<
 *         return self._postfix[idx]
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_3__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_idx); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_3__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_idx) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_2__getitem__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self), ((PyObject *)__pyx_v_idx));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_2__getitem__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v_idx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__getitem__", 0);

  /* "setools/policyrep/constraint.pxi":162
 * 
 *     def __getitem__(self, idx):
 *         return self._postfix[idx]             # <<<<<<<<<<<<<<
 * 
 *     def __iter__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_postfix == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(2, 162, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->_postfix, __pyx_v_idx); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":161
 *         return " ".join(ret)
 * 
 *     def __getitem__(self, idx):             # <<<<<<<<<<<<<<
 *         return self._postfix[idx]
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":164
 *         return self._postfix[idx]
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return iter(self._postfix)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5__iter__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_4__iter__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_4__iter__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__iter__", 0);

  /* "setools/policyrep/constraint.pxi":165
 * 
 *     def __iter__(self):
 *         return iter(self._postfix)             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_postfix;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":164
 *         return self._postfix[idx]
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return iter(self._postfix)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":167
 *         return iter(self._postfix)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self._postfix == other
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_6__eq__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_6__eq__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/constraint.pxi":168
 * 
 *     def __eq__(self, other):
 *         return self._postfix == other             # <<<<<<<<<<<<<<
 * 
 *     def infix(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->_postfix, __pyx_v_other, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 168, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":167
 *         return iter(self._postfix)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self._postfix == other
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":170
 *         return self._postfix == other
 * 
 *     def infix(self):             # <<<<<<<<<<<<<<
 *         """The expression as an infix notation list."""
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_9infix(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_20ConstraintExpression_8infix, "The expression as an infix notation list.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_20ConstraintExpression_9infix = {"infix", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20ConstraintExpression_9infix, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_20ConstraintExpression_8infix};
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_9infix(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("infix (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("infix", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("infix", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_8infix(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":241
 *                     stack.append(StackObj(op_precedence, e))
 * 
 *             self._infix = flatten_list(map(lambda x:x.expression, stack))             # <<<<<<<<<<<<<<
 * 
 *         return self._infix
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5infix_lambda9(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_20ConstraintExpression_5infix_lambda9 = {"lambda9", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20ConstraintExpression_5infix_lambda9, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5infix_lambda9(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_x = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda9 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_x,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 241, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 241, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lambda9", 0) < (0)) __PYX_ERR(2, 241, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda9", 1, 1, 1, i); __PYX_ERR(2, 241, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 241, __pyx_L3_error)
    }
    __pyx_v_x = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda9", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 241, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.infix.lambda9", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_lambda9(__pyx_self, __pyx_v_x);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_lambda_funcdef_lambda9(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda9", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_mstate_global->__pyx_n_u_expression); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.infix.lambda9", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":170
 *         return self._postfix == other
 * 
 *     def infix(self):             # <<<<<<<<<<<<<<
 *         """The expression as an infix notation list."""
 * 
*/

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_8infix(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_v__precedence = NULL;
  long __pyx_v__max_precedence;
  PyObject *__pyx_v__operands = NULL;
  PyObject *__pyx_v_stack = NULL;
  PyObject *__pyx_v_StackObj = NULL;
  PyObject *__pyx_v_op = NULL;
  PyObject *__pyx_v_op_precedence = NULL;
  PyObject *__pyx_v_operator = NULL;
  PyObject *__pyx_v_operand_info = NULL;
  PyObject *__pyx_v_e = NULL;
  PyObject *__pyx_v_operand2_info = NULL;
  PyObject *__pyx_v_operand1_info = NULL;
  PyObject *__pyx_v_operand1 = NULL;
  PyObject *__pyx_v_operand2 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("infix", 0);

  /* "setools/policyrep/constraint.pxi":173
 *         """The expression as an infix notation list."""
 * 
 *         if self._infix is None:             # <<<<<<<<<<<<<<
 *             self._infix = []
 * 
*/
  __pyx_t_1 = (__pyx_v_self->_infix == ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "setools/policyrep/constraint.pxi":174
 * 
 *         if self._infix is None:
 *             self._infix = []             # <<<<<<<<<<<<<<
 * 
 *             _precedence = {
*/
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_self->_infix);
    __Pyx_DECREF(__pyx_v_self->_infix);
    __pyx_v_self->_infix = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/constraint.pxi":177
 * 
 *             _precedence = {
 *                 "not": 4,             # <<<<<<<<<<<<<<
 *                 "and": 2,
 *                 "or": 1,
*/
    __pyx_t_2 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_not, __pyx_mstate_global->__pyx_int_4) < (0)) __PYX_ERR(2, 177, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_and, __pyx_mstate_global->__pyx_int_2) < (0)) __PYX_ERR(2, 177, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_or, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(2, 177, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u__11, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(2, 177, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u__12, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(2, 177, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_dom, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(2, 177, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_domby, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(2, 177, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_incomp, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(2, 177, __pyx_L1_error)
    __pyx_v__precedence = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/constraint.pxi":186
 *                 "incomp": 3}
 * 
 *             _max_precedence = 4             # <<<<<<<<<<<<<<
 * 
 *             _operands = ["u1", "u2", "u3",
*/
    __pyx_v__max_precedence = 4;

    /* "setools/policyrep/constraint.pxi":188
 *             _max_precedence = 4
 * 
 *             _operands = ["u1", "u2", "u3",             # <<<<<<<<<<<<<<
 *                          "r1", "r2", "r3",
 *                          "t1", "t2", "t3",
*/
    __pyx_t_2 = PyList_New(13); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_u1);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_u1);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_mstate_global->__pyx_n_u_u1) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_u2);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_u2);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_n_u_u2) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_u3);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_u3);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_mstate_global->__pyx_n_u_u3) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_r1);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_r1);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_mstate_global->__pyx_n_u_r1) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_r2);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_r2);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 4, __pyx_mstate_global->__pyx_n_u_r2) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_r3);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_r3);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 5, __pyx_mstate_global->__pyx_n_u_r3) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_t1);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_t1);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 6, __pyx_mstate_global->__pyx_n_u_t1) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_t2);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_t2);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 7, __pyx_mstate_global->__pyx_n_u_t2) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_t3);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_t3);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 8, __pyx_mstate_global->__pyx_n_u_t3) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_l1);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_l1);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 9, __pyx_mstate_global->__pyx_n_u_l1) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_l2);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_l2);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 10, __pyx_mstate_global->__pyx_n_u_l2) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_h1);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_h1);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 11, __pyx_mstate_global->__pyx_n_u_h1) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_h2);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_h2);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 12, __pyx_mstate_global->__pyx_n_u_h2) != (0)) __PYX_ERR(2, 188, __pyx_L1_error);
    __pyx_v__operands = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/constraint.pxi":199
 *             # whenever an operation involves a subexpression with
 *             # lower precedence.
 *             stack = []             # <<<<<<<<<<<<<<
 * 
 *             @dataclasses.dataclass(repr=False, eq=False, frozen=True)
*/
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_stack = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/constraint.pxi":202
 * 
 *             @dataclasses.dataclass(repr=False, eq=False, frozen=True)
 *             class StackObj:             # <<<<<<<<<<<<<<
 *                 precedence: int
 *                 expression: List[str]
*/
    __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_StackObj, __pyx_mstate_global->__pyx_n_u_infix_locals_StackObj, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_precedence, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(2, 202, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_expression, __pyx_mstate_global->__pyx_kp_u_List_str) < (0)) __PYX_ERR(2, 202, __pyx_L1_error)
    if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_annotations, __pyx_t_3) < (0)) __PYX_ERR(2, 202, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "setools/policyrep/constraint.pxi":201
 *             stack = []
 * 
 *             @dataclasses.dataclass(repr=False, eq=False, frozen=True)             # <<<<<<<<<<<<<<
 *             class StackObj:
 *                 precedence: int
*/
    __pyx_t_4 = NULL;
    __pyx_t_6 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_dataclass); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_9 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
      assert(__pyx_t_6);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
      __pyx_t_9 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 3 : 0)] = {__pyx_t_6, NULL};
      __pyx_t_7 = __Pyx_MakeVectorcallBuilderKwds(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 201, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_repr, Py_False, __pyx_t_7, __pyx_callargs+1, 0) < (0)) __PYX_ERR(2, 201, __pyx_L1_error)
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eq_2, Py_False, __pyx_t_7, __pyx_callargs+1, 1) < (0)) __PYX_ERR(2, 201, __pyx_L1_error)
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_frozen, Py_True, __pyx_t_7, __pyx_callargs+1, 2) < (0)) __PYX_ERR(2, 201, __pyx_L1_error)
      __pyx_t_5 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 201, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }

    /* "setools/policyrep/constraint.pxi":202
 * 
 *             @dataclasses.dataclass(repr=False, eq=False, frozen=True)
 *             class StackObj:             # <<<<<<<<<<<<<<
 *                 precedence: int
 *                 expression: List[str]
*/
    __pyx_t_8 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_StackObj, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_9 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_8};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 201, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __pyx_v_StackObj = __pyx_t_3;
    __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/constraint.pxi":206
 *                 expression: List[str]
 * 
 *             for op in self._postfix:             # <<<<<<<<<<<<<<
 *                 if isinstance(op, frozenset) or op in _operands:
 *                     # operands
*/
    if (unlikely(__pyx_v_self->_postfix == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(2, 206, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_v_self->_postfix; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_10 = 0;
    for (;;) {
      {
        Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 206, __pyx_L1_error)
        #endif
        if (__pyx_t_10 >= __pyx_temp) break;
      }
      __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_10, __Pyx_ReferenceSharing_OwnStrongReference);
      ++__pyx_t_10;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_op, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/constraint.pxi":207
 * 
 *             for op in self._postfix:
 *                 if isinstance(op, frozenset) or op in _operands:             # <<<<<<<<<<<<<<
 *                     # operands
 *                     stack.append(StackObj(_max_precedence, op))
*/
      __pyx_t_11 = PyFrozenSet_Check(__pyx_v_op); 
      if (!__pyx_t_11) {
      } else {
        __pyx_t_1 = __pyx_t_11;
        goto __pyx_L7_bool_binop_done;
      }
      __pyx_t_11 = (__Pyx_PySequence_ContainsTF(__pyx_v_op, __pyx_v__operands, Py_EQ)); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 207, __pyx_L1_error)
      __pyx_t_1 = __pyx_t_11;
      __pyx_L7_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/constraint.pxi":209
 *                 if isinstance(op, frozenset) or op in _operands:
 *                     # operands
 *                     stack.append(StackObj(_max_precedence, op))             # <<<<<<<<<<<<<<
 *                 else:
 *                     # operators
*/
        __pyx_t_3 = __Pyx_PyLong_From_long(__pyx_v__max_precedence); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 209, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 209, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_3);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(2, 209, __pyx_L1_error);
        __Pyx_INCREF(__pyx_v_op);
        __Pyx_GIVEREF(__pyx_v_op);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_op) != (0)) __PYX_ERR(2, 209, __pyx_L1_error);
        __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_StackObj, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 209, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_3); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(2, 209, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "setools/policyrep/constraint.pxi":207
 * 
 *             for op in self._postfix:
 *                 if isinstance(op, frozenset) or op in _operands:             # <<<<<<<<<<<<<<
 *                     # operands
 *                     stack.append(StackObj(_max_precedence, op))
*/
        goto __pyx_L6;
      }

      /* "setools/policyrep/constraint.pxi":212
 *                 else:
 *                     # operators
 *                     op_precedence = _precedence[op]             # <<<<<<<<<<<<<<
 *                     if op == "not":
 *                         # unary operator
*/
      /*else*/ {
        __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v__precedence, __pyx_v_op); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 212, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_XDECREF_SET(__pyx_v_op_precedence, __pyx_t_3);
        __pyx_t_3 = 0;

        /* "setools/policyrep/constraint.pxi":213
 *                     # operators
 *                     op_precedence = _precedence[op]
 *                     if op == "not":             # <<<<<<<<<<<<<<
 *                         # unary operator
 *                         operator = op
*/
        __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_op, __pyx_mstate_global->__pyx_n_u_not, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 213, __pyx_L1_error)
        if (__pyx_t_1) {

          /* "setools/policyrep/constraint.pxi":215
 *                     if op == "not":
 *                         # unary operator
 *                         operator = op             # <<<<<<<<<<<<<<
 *                         operand_info = stack.pop()
 *                         if operand_info.precedence < op_precedence:
*/
          __Pyx_INCREF(__pyx_v_op);
          __Pyx_XDECREF_SET(__pyx_v_operator, __pyx_v_op);

          /* "setools/policyrep/constraint.pxi":216
 *                         # unary operator
 *                         operator = op
 *                         operand_info = stack.pop()             # <<<<<<<<<<<<<<
 *                         if operand_info.precedence < op_precedence:
 *                             e = [operator, "(", operand_info.expression, ")"]
*/
          __pyx_t_3 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 216, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_XDECREF_SET(__pyx_v_operand_info, __pyx_t_3);
          __pyx_t_3 = 0;

          /* "setools/policyrep/constraint.pxi":217
 *                         operator = op
 *                         operand_info = stack.pop()
 *                         if operand_info.precedence < op_precedence:             # <<<<<<<<<<<<<<
 *                             e = [operator, "(", operand_info.expression, ")"]
 *                         else:
*/
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_operand_info, __pyx_mstate_global->__pyx_n_u_precedence); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 217, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_v_op_precedence, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 217, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 217, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (__pyx_t_1) {

            /* "setools/policyrep/constraint.pxi":218
 *                         operand_info = stack.pop()
 *                         if operand_info.precedence < op_precedence:
 *                             e = [operator, "(", operand_info.expression, ")"]             # <<<<<<<<<<<<<<
 *                         else:
 *                             e = [operator, operand_info.expression]
*/
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_operand_info, __pyx_mstate_global->__pyx_n_u_expression); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 218, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 218, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_INCREF(__pyx_v_operator);
            __Pyx_GIVEREF(__pyx_v_operator);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_operator) != (0)) __PYX_ERR(2, 218, __pyx_L1_error);
            __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__3);
            __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__3);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_kp_u__3) != (0)) __PYX_ERR(2, 218, __pyx_L1_error);
            __Pyx_GIVEREF(__pyx_t_5);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 2, __pyx_t_5) != (0)) __PYX_ERR(2, 218, __pyx_L1_error);
            __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__4);
            __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__4);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 3, __pyx_mstate_global->__pyx_kp_u__4) != (0)) __PYX_ERR(2, 218, __pyx_L1_error);
            __pyx_t_5 = 0;
            __Pyx_XDECREF_SET(__pyx_v_e, ((PyObject*)__pyx_t_3));
            __pyx_t_3 = 0;

            /* "setools/policyrep/constraint.pxi":217
 *                         operator = op
 *                         operand_info = stack.pop()
 *                         if operand_info.precedence < op_precedence:             # <<<<<<<<<<<<<<
 *                             e = [operator, "(", operand_info.expression, ")"]
 *                         else:
*/
            goto __pyx_L10;
          }

          /* "setools/policyrep/constraint.pxi":220
 *                             e = [operator, "(", operand_info.expression, ")"]
 *                         else:
 *                             e = [operator, operand_info.expression]             # <<<<<<<<<<<<<<
 *                     else:
 *                         # binary operators
*/
          /*else*/ {
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_operand_info, __pyx_mstate_global->__pyx_n_u_expression); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 220, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 220, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_INCREF(__pyx_v_operator);
            __Pyx_GIVEREF(__pyx_v_operator);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 0, __pyx_v_operator) != (0)) __PYX_ERR(2, 220, __pyx_L1_error);
            __Pyx_GIVEREF(__pyx_t_3);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(2, 220, __pyx_L1_error);
            __pyx_t_3 = 0;
            __Pyx_XDECREF_SET(__pyx_v_e, ((PyObject*)__pyx_t_5));
            __pyx_t_5 = 0;
          }
          __pyx_L10:;

          /* "setools/policyrep/constraint.pxi":213
 *                     # operators
 *                     op_precedence = _precedence[op]
 *                     if op == "not":             # <<<<<<<<<<<<<<
 *                         # unary operator
 *                         operator = op
*/
          goto __pyx_L9;
        }

        /* "setools/policyrep/constraint.pxi":223
 *                     else:
 *                         # binary operators
 *                         operand2_info = stack.pop()             # <<<<<<<<<<<<<<
 *                         operand1_info = stack.pop()
 *                         operator = op
*/
        /*else*/ {
          __pyx_t_5 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 223, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_XDECREF_SET(__pyx_v_operand2_info, __pyx_t_5);
          __pyx_t_5 = 0;

          /* "setools/policyrep/constraint.pxi":224
 *                         # binary operators
 *                         operand2_info = stack.pop()
 *                         operand1_info = stack.pop()             # <<<<<<<<<<<<<<
 *                         operator = op
 * 
*/
          __pyx_t_5 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 224, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_XDECREF_SET(__pyx_v_operand1_info, __pyx_t_5);
          __pyx_t_5 = 0;

          /* "setools/policyrep/constraint.pxi":225
 *                         operand2_info = stack.pop()
 *                         operand1_info = stack.pop()
 *                         operator = op             # <<<<<<<<<<<<<<
 * 
 *                         if operand1_info.precedence < op_precedence:
*/
          __Pyx_INCREF(__pyx_v_op);
          __Pyx_XDECREF_SET(__pyx_v_operator, __pyx_v_op);

          /* "setools/policyrep/constraint.pxi":227
 *                         operator = op
 * 
 *                         if operand1_info.precedence < op_precedence:             # <<<<<<<<<<<<<<
 *                             operand1 = ["(", operand1_info.expression, ")"]
 *                         else:
*/
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_operand1_info, __pyx_mstate_global->__pyx_n_u_precedence); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 227, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_v_op_precedence, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 227, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 227, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (__pyx_t_1) {

            /* "setools/policyrep/constraint.pxi":228
 * 
 *                         if operand1_info.precedence < op_precedence:
 *                             operand1 = ["(", operand1_info.expression, ")"]             # <<<<<<<<<<<<<<
 *                         else:
 *                             operand1 = [operand1_info.expression]
*/
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_operand1_info, __pyx_mstate_global->__pyx_n_u_expression); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 228, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_5 = PyList_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 228, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__3);
            __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__3);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 0, __pyx_mstate_global->__pyx_kp_u__3) != (0)) __PYX_ERR(2, 228, __pyx_L1_error);
            __Pyx_GIVEREF(__pyx_t_3);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(2, 228, __pyx_L1_error);
            __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__4);
            __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__4);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 2, __pyx_mstate_global->__pyx_kp_u__4) != (0)) __PYX_ERR(2, 228, __pyx_L1_error);
            __pyx_t_3 = 0;
            __Pyx_XDECREF_SET(__pyx_v_operand1, ((PyObject*)__pyx_t_5));
            __pyx_t_5 = 0;

            /* "setools/policyrep/constraint.pxi":227
 *                         operator = op
 * 
 *                         if operand1_info.precedence < op_precedence:             # <<<<<<<<<<<<<<
 *                             operand1 = ["(", operand1_info.expression, ")"]
 *                         else:
*/
            goto __pyx_L11;
          }

          /* "setools/policyrep/constraint.pxi":230
 *                             operand1 = ["(", operand1_info.expression, ")"]
 *                         else:
 *                             operand1 = [operand1_info.expression]             # <<<<<<<<<<<<<<
 * 
 *                         if operand2_info.precedence < op_precedence:
*/
          /*else*/ {
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_operand1_info, __pyx_mstate_global->__pyx_n_u_expression); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 230, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 230, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_5);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_5) != (0)) __PYX_ERR(2, 230, __pyx_L1_error);
            __pyx_t_5 = 0;
            __Pyx_XDECREF_SET(__pyx_v_operand1, ((PyObject*)__pyx_t_3));
            __pyx_t_3 = 0;
          }
          __pyx_L11:;

          /* "setools/policyrep/constraint.pxi":232
 *                             operand1 = [operand1_info.expression]
 * 
 *                         if operand2_info.precedence < op_precedence:             # <<<<<<<<<<<<<<
 *                             operand2 = ["(", operand2_info.expression, ")"]
 *                         else:
*/
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_operand2_info, __pyx_mstate_global->__pyx_n_u_precedence); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 232, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_v_op_precedence, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 232, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 232, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (__pyx_t_1) {

            /* "setools/policyrep/constraint.pxi":233
 * 
 *                         if operand2_info.precedence < op_precedence:
 *                             operand2 = ["(", operand2_info.expression, ")"]             # <<<<<<<<<<<<<<
 *                         else:
 *                             operand2 = [operand2_info.expression]
*/
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_operand2_info, __pyx_mstate_global->__pyx_n_u_expression); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 233, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 233, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__3);
            __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__3);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_mstate_global->__pyx_kp_u__3) != (0)) __PYX_ERR(2, 233, __pyx_L1_error);
            __Pyx_GIVEREF(__pyx_t_5);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_5) != (0)) __PYX_ERR(2, 233, __pyx_L1_error);
            __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__4);
            __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__4);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 2, __pyx_mstate_global->__pyx_kp_u__4) != (0)) __PYX_ERR(2, 233, __pyx_L1_error);
            __pyx_t_5 = 0;
            __Pyx_XDECREF_SET(__pyx_v_operand2, ((PyObject*)__pyx_t_3));
            __pyx_t_3 = 0;

            /* "setools/policyrep/constraint.pxi":232
 *                             operand1 = [operand1_info.expression]
 * 
 *                         if operand2_info.precedence < op_precedence:             # <<<<<<<<<<<<<<
 *                             operand2 = ["(", operand2_info.expression, ")"]
 *                         else:
*/
            goto __pyx_L12;
          }

          /* "setools/policyrep/constraint.pxi":235
 *                             operand2 = ["(", operand2_info.expression, ")"]
 *                         else:
 *                             operand2 = [operand2_info.expression]             # <<<<<<<<<<<<<<
 * 
 *                         e = operand1 + [operator] + operand2
*/
          /*else*/ {
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_operand2_info, __pyx_mstate_global->__pyx_n_u_expression); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 235, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 235, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_GIVEREF(__pyx_t_3);
            if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(2, 235, __pyx_L1_error);
            __pyx_t_3 = 0;
            __Pyx_XDECREF_SET(__pyx_v_operand2, ((PyObject*)__pyx_t_5));
            __pyx_t_5 = 0;
          }
          __pyx_L12:;

          /* "setools/policyrep/constraint.pxi":237
 *                             operand2 = [operand2_info.expression]
 * 
 *                         e = operand1 + [operator] + operand2             # <<<<<<<<<<<<<<
 * 
 *                     stack.append(StackObj(op_precedence, e))
*/
          __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 237, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_INCREF(__pyx_v_operator);
          __Pyx_GIVEREF(__pyx_v_operator);
          if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 0, __pyx_v_operator) != (0)) __PYX_ERR(2, 237, __pyx_L1_error);
          __pyx_t_3 = PyNumber_Add(__pyx_v_operand1, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 237, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_v_operand2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 237, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF_SET(__pyx_v_e, ((PyObject*)__pyx_t_5));
          __pyx_t_5 = 0;
        }
        __pyx_L9:;

        /* "setools/policyrep/constraint.pxi":239
 *                         e = operand1 + [operator] + operand2
 * 
 *                     stack.append(StackObj(op_precedence, e))             # <<<<<<<<<<<<<<
 * 
 *             self._infix = flatten_list(map(lambda x:x.expression, stack))
*/
        __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 239, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_v_op_precedence);
        __Pyx_GIVEREF(__pyx_v_op_precedence);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_op_precedence) != (0)) __PYX_ERR(2, 239, __pyx_L1_error);
        __Pyx_INCREF(__pyx_v_e);
        __Pyx_GIVEREF(__pyx_v_e);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_e) != (0)) __PYX_ERR(2, 239, __pyx_L1_error);
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_StackObj, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 239, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_3); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(2, 239, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __pyx_L6:;

      /* "setools/policyrep/constraint.pxi":206
 *                 expression: List[str]
 * 
 *             for op in self._postfix:             # <<<<<<<<<<<<<<
 *                 if isinstance(op, frozenset) or op in _operands:
 *                     # operands
*/
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/constraint.pxi":241
 *                     stack.append(StackObj(op_precedence, e))
 * 
 *             self._infix = flatten_list(map(lambda x:x.expression, stack))             # <<<<<<<<<<<<<<
 * 
 *         return self._infix
*/
    __pyx_t_3 = NULL;
    __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_20ConstraintExpression_5infix_lambda9, 0, __pyx_mstate_global->__pyx_n_u_infix_locals_lambda, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 241, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_v_stack};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_map, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 241, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_5 = __pyx_f_7setools_9policyrep_flatten_list(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 241, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(2, 241, __pyx_L1_error)
    __Pyx_GIVEREF(__pyx_t_5);
    __Pyx_GOTREF(__pyx_v_self->_infix);
    __Pyx_DECREF(__pyx_v_self->_infix);
    __pyx_v_self->_infix = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "setools/policyrep/constraint.pxi":173
 *         """The expression as an infix notation list."""
 * 
 *         if self._infix is None:             # <<<<<<<<<<<<<<
 *             self._infix = []
 * 
*/
  }

  /* "setools/policyrep/constraint.pxi":243
 *             self._infix = flatten_list(map(lambda x:x.expression, stack))
 * 
 *         return self._infix             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_infix);
  __pyx_r = __pyx_v_self->_infix;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":170
 *         return self._postfix == other
 * 
 *     def infix(self):             # <<<<<<<<<<<<<<
 *         """The expression as an infix notation list."""
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.infix", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__precedence);
  __Pyx_XDECREF(__pyx_v__operands);
  __Pyx_XDECREF(__pyx_v_stack);
  __Pyx_XDECREF(__pyx_v_StackObj);
  __Pyx_XDECREF(__pyx_v_op);
  __Pyx_XDECREF(__pyx_v_op_precedence);
  __Pyx_XDECREF(__pyx_v_operator);
  __Pyx_XDECREF(__pyx_v_operand_info);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XDECREF(__pyx_v_operand2_info);
  __Pyx_XDECREF(__pyx_v_operand1_info);
  __Pyx_XDECREF(__pyx_v_operand1);
  __Pyx_XDECREF(__pyx_v_operand2);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":245
 *         return self._infix
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_11statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_20ConstraintExpression_11statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20ConstraintExpression_11statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_11statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_10statement(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_10statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/constraint.pxi":246
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(2, 246, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":245
 *         return self._infix
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":107
 *         list _infix
 *         list _postfix
 *         readonly bint mls             # <<<<<<<<<<<<<<
 *         readonly frozenset users
 *         readonly frozenset roles
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_3mls_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_3mls_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_3mls___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_3mls___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->mls); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.mls.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":108
 *         list _postfix
 *         readonly bint mls
 *         readonly frozenset users             # <<<<<<<<<<<<<<
 *         readonly frozenset roles
 *         readonly frozenset types
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5users_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5users_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_5users___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5users___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->users);
  __pyx_r = __pyx_v_self->users;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":109
 *         readonly bint mls
 *         readonly frozenset users
 *         readonly frozenset roles             # <<<<<<<<<<<<<<
 *         readonly frozenset types
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5roles_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5roles_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_5roles___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5roles___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->roles);
  __pyx_r = __pyx_v_self->roles;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":110
 *         readonly frozenset users
 *         readonly frozenset roles
 *         readonly frozenset types             # <<<<<<<<<<<<<<
 * 
 *     # There is no levels attribute as specific
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5types_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5types_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_5types___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5types___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->types);
  __pyx_r = __pyx_v_self->types;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_20ConstraintExpression_13__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20ConstraintExpression_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_12__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_12__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._infix, self._postfix, self.key, self.mls, self.policy, self.roles, self.types, self.users)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->mls); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(8); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->_infix);
  __Pyx_GIVEREF(__pyx_v_self->_infix);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->_infix) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_postfix);
  __Pyx_GIVEREF(__pyx_v_self->_postfix);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->_postfix) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->roles);
  __Pyx_GIVEREF(__pyx_v_self->roles);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_self->roles) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->types);
  __Pyx_GIVEREF(__pyx_v_self->types);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->types) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->users);
  __Pyx_GIVEREF(__pyx_v_self->users);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 7, __pyx_v_self->users) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._infix, self._postfix, self.key, self.mls, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self._infix, self._postfix, self.key, self.mls, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._infix is not None or self._postfix is not None or self.policy is not None or self.roles is not None or self.types is not None or self.users is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._infix, self._postfix, self.key, self.mls, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._infix is not None or self._postfix is not None or self.policy is not None or self.roles is not None or self.types is not None or self.users is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0xcf964d8, None), state
*/
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->_infix != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->_postfix != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->roles != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->types != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->users != ((PyObject*)Py_None));
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._infix is not None or self._postfix is not None or self.policy is not None or self.roles is not None or self.types is not None or self.users is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0xcf964d8, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._infix is not None or self._postfix is not None or self.policy is not None or self.roles is not None or self.types is not None or self.users is not None
 *     if use_setstate:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0xcf964d8, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0xcf964d8, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConstraintExpress); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_217670872);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_217670872);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_217670872) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._infix is not None or self._postfix is not None or self.policy is not None or self.roles is not None or self.types is not None or self.users is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0xcf964d8, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0xcf964d8, None), state
 *     else:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0xcf964d8, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConstraintExpression__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConstraintExpress); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_217670872);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_217670872);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_217670872) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0xcf964d8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConstraintExpression__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_20ConstraintExpression_15__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20ConstraintExpression_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_14__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_14__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0xcf964d8, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConstraintExpression__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExpression__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0xcf964d8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConstraintExpression__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_2generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":344
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:
*/

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_3_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 344, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_2generator15, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_ConstraintExprNode_factory_local, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 344, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_2generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(2, 344, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(2, 344, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 344, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 344, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 344, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 344, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 344, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_r);
    __pyx_r = __pyx_cur_scope->__pyx_v_r;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 344, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_5generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":349
 *                     n.types = True
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in             # <<<<<<<<<<<<<<
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
 *                                                  policy, symbol.type_names))
*/

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_3genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_4_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 349, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_5generator16, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_ConstraintExprNode_factory_local, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 349, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_5generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(2, 349, __pyx_L1_error)
  }

  /* "setools/policyrep/constraint.pxi":350
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(             # <<<<<<<<<<<<<<
 *                                                  policy, symbol.type_names))
 *                     else:
*/
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(2, 350, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 350, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 350, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 350, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 350, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 350, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 350, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;

    /* "setools/policyrep/constraint.pxi":349
 *                     n.types = True
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in             # <<<<<<<<<<<<<<
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
 *                                                  policy, symbol.type_names))
*/
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
    __pyx_r = __pyx_cur_scope->__pyx_v_t;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 349, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_8generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":353
 *                                                  policy, symbol.type_names))
 *                     else:
 *                         n._names = frozenset(t for t in TypeEbitmapIterator.factory(             # <<<<<<<<<<<<<<
 *                                              policy, &symbol.names))
 *                 else:
*/

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_6genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_5_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 353, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_8generator17, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_ConstraintExprNode_factory_local, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 353, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_8generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(2, 353, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(2, 353, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 353, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 353, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 353, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 353, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 353, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 353, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
    __pyx_r = __pyx_cur_scope->__pyx_v_t;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 353, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_11generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":357
 *                 else:
 *                     n.users = True
 *                     n._names = frozenset(u for u in UserEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 * 
*/

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_9genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_6_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 357, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_11generator18, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_ConstraintExprNode_factory_local, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 357, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_11generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(2, 357, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(2, 357, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 357, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 357, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 357, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 357, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 357, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 357, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_u);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_u, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_u);
    __pyx_r = __pyx_cur_scope->__pyx_v_u;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 357, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":323
 *                   sepol.CEXPR_USER + sepol.CEXPR_XTARGET]
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline ConstraintExprNode factory(SELinuxPolicy policy, sepol.constraint_expr_t *symbol):
 *         """Factory function for creating ConstraintExprNode objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_f_7setools_9policyrep_18ConstraintExprNode_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_n = 0;
  PyObject *__pyx_v_operand1 = NULL;
  PyObject *__pyx_v_operand2 = NULL;
  PyObject *__pyx_v_operator = NULL;
  PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_2generator15 = 0;
  PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_5generator16 = 0;
  PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_8generator17 = 0;
  PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_11generator18 = 0;
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":326
 *     cdef inline ConstraintExprNode factory(SELinuxPolicy policy, sepol.constraint_expr_t *symbol):
 *         """Factory function for creating ConstraintExprNode objects."""
 *         cdef ConstraintExprNode n = ConstraintExprNode.__new__(ConstraintExprNode)             # <<<<<<<<<<<<<<
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_ConstraintExprNode(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 326, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_n = ((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":327
 *         """Factory function for creating ConstraintExprNode objects."""
 *         cdef ConstraintExprNode n = ConstraintExprNode.__new__(ConstraintExprNode)
 *         n.policy = policy             # <<<<<<<<<<<<<<
 *         n.key = <uintptr_t>symbol
 *         n.expression_type = symbol.expr_type
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_n->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_n->__pyx_base.policy);
  __pyx_v_n->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":328
 *         cdef ConstraintExprNode n = ConstraintExprNode.__new__(ConstraintExprNode)
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         n.expression_type = symbol.expr_type
 *         n.operator = symbol.op
*/
  __pyx_v_n->__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/constraint.pxi":329
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol
 *         n.expression_type = symbol.expr_type             # <<<<<<<<<<<<<<
 *         n.operator = symbol.op
 * 
*/
  __pyx_t_2 = __pyx_v_symbol->expr_type;
  __pyx_v_n->expression_type = __pyx_t_2;

  /* "setools/policyrep/constraint.pxi":330
 *         n.key = <uintptr_t>symbol
 *         n.expression_type = symbol.expr_type
 *         n.operator = symbol.op             # <<<<<<<<<<<<<<
 * 
 *         #
*/
  __pyx_t_2 = __pyx_v_symbol->op;
  __pyx_v_n->__pyx_operator = __pyx_t_2;

  /* "setools/policyrep/constraint.pxi":335
 *         # Determine attributes of expression node
 *         #
 *         if symbol.expr_type in (sepol.CEXPR_ATTR, sepol.CEXPR_NAMES):             # <<<<<<<<<<<<<<
 *             n._symbol_type = symbol.attr
 * 
*/
  switch (__pyx_v_symbol->expr_type) {
    case CEXPR_ATTR:
    case CEXPR_NAMES:

    /* "setools/policyrep/constraint.pxi":336
 *         #
 *         if symbol.expr_type in (sepol.CEXPR_ATTR, sepol.CEXPR_NAMES):
 *             n._symbol_type = symbol.attr             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
    __pyx_t_2 = __pyx_v_symbol->attr;
    __pyx_v_n->_symbol_type = __pyx_t_2;

    /* "setools/policyrep/constraint.pxi":335
 *         # Determine attributes of expression node
 *         #
 *         if symbol.expr_type in (sepol.CEXPR_ATTR, sepol.CEXPR_NAMES):             # <<<<<<<<<<<<<<
 *             n._symbol_type = symbol.attr
 * 
*/
    break;
    default: break;
  }

  /* "setools/policyrep/constraint.pxi":338
 *             n._symbol_type = symbol.attr
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2
 * 
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/constraint.pxi":339
 * 
 *         try:
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2             # <<<<<<<<<<<<<<
 * 
 *             if symbol.expr_type == sepol.CEXPR_NAMES:
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_symbol_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 339, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_L1L2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 339, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_6, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 339, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 339, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_v_n->mls = __pyx_t_8;

      /* "setools/policyrep/constraint.pxi":341
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2
 * 
 *             if symbol.expr_type == sepol.CEXPR_NAMES:             # <<<<<<<<<<<<<<
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True
*/
      __pyx_t_8 = (__pyx_v_symbol->expr_type == CEXPR_NAMES);
      if (__pyx_t_8) {

        /* "setools/policyrep/constraint.pxi":342
 * 
 *             if symbol.expr_type == sepol.CEXPR_NAMES:
 *                 if n.symbol_type in n._role_syms:             # <<<<<<<<<<<<<<
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,
*/
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_symbol_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 342, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_role_syms); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 342, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_t_7, __pyx_t_6, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 342, __pyx_L3_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (__pyx_t_8) {

          /* "setools/policyrep/constraint.pxi":343
 *             if symbol.expr_type == sepol.CEXPR_NAMES:
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True             # <<<<<<<<<<<<<<
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,
 *                                                                                 &symbol.names))
*/
          __pyx_v_n->roles = 1;

          /* "setools/policyrep/constraint.pxi":344
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:
*/
          __pyx_t_6 = __pyx_f_7setools_9policyrep_19RoleEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->names)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 344, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_genexpr(NULL, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 344, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = __Pyx_PyFrozenSet_New(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 344, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GIVEREF(__pyx_t_6);
          __Pyx_GOTREF(__pyx_v_n->_names);
          __Pyx_DECREF(__pyx_v_n->_names);
          __pyx_v_n->_names = ((PyObject*)__pyx_t_6);
          __pyx_t_6 = 0;

          /* "setools/policyrep/constraint.pxi":342
 * 
 *             if symbol.expr_type == sepol.CEXPR_NAMES:
 *                 if n.symbol_type in n._role_syms:             # <<<<<<<<<<<<<<
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,
*/
          goto __pyx_L10;
        }

        /* "setools/policyrep/constraint.pxi":346
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:             # <<<<<<<<<<<<<<
 *                     n.types = True
 *                     if policy.version > 28:
*/
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_symbol_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 346, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_type_syms); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 346, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_t_6, __pyx_t_7, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 346, __pyx_L3_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (__pyx_t_8) {

          /* "setools/policyrep/constraint.pxi":347
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:
 *                     n.types = True             # <<<<<<<<<<<<<<
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in
*/
          __pyx_v_n->types = 1;

          /* "setools/policyrep/constraint.pxi":348
 *                 elif n.symbol_type in n._type_syms:
 *                     n.types = True
 *                     if policy.version > 28:             # <<<<<<<<<<<<<<
 *                         n._names = frozenset(t for t in
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
*/
          __pyx_t_8 = (__pyx_v_policy->version > 28);
          if (__pyx_t_8) {

            /* "setools/policyrep/constraint.pxi":350
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(             # <<<<<<<<<<<<<<
 *                                                  policy, symbol.type_names))
 *                     else:
*/
            __pyx_t_7 = __pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory_from_set(__pyx_v_policy, __pyx_v_symbol->type_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 350, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_7);

            /* "setools/policyrep/constraint.pxi":349
 *                     n.types = True
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in             # <<<<<<<<<<<<<<
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
 *                                                  policy, symbol.type_names))
*/
            __pyx_t_6 = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_3genexpr(NULL, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 349, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = __Pyx_PyFrozenSet_New(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 349, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_GIVEREF(__pyx_t_7);
            __Pyx_GOTREF(__pyx_v_n->_names);
            __Pyx_DECREF(__pyx_v_n->_names);
            __pyx_v_n->_names = ((PyObject*)__pyx_t_7);
            __pyx_t_7 = 0;

            /* "setools/policyrep/constraint.pxi":348
 *                 elif n.symbol_type in n._type_syms:
 *                     n.types = True
 *                     if policy.version > 28:             # <<<<<<<<<<<<<<
 *                         n._names = frozenset(t for t in
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
*/
            goto __pyx_L11;
          }

          /* "setools/policyrep/constraint.pxi":353
 *                                                  policy, symbol.type_names))
 *                     else:
 *                         n._names = frozenset(t for t in TypeEbitmapIterator.factory(             # <<<<<<<<<<<<<<
 *                                              policy, &symbol.names))
 *                 else:
*/
          /*else*/ {

            /* "setools/policyrep/constraint.pxi":354
 *                     else:
 *                         n._names = frozenset(t for t in TypeEbitmapIterator.factory(
 *                                              policy, &symbol.names))             # <<<<<<<<<<<<<<
 *                 else:
 *                     n.users = True
*/
            __pyx_t_7 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->names)); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 353, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_7);

            /* "setools/policyrep/constraint.pxi":353
 *                                                  policy, symbol.type_names))
 *                     else:
 *                         n._names = frozenset(t for t in TypeEbitmapIterator.factory(             # <<<<<<<<<<<<<<
 *                                              policy, &symbol.names))
 *                 else:
*/
            __pyx_t_6 = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_6genexpr(NULL, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 353, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = __Pyx_PyFrozenSet_New(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 353, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_GIVEREF(__pyx_t_7);
            __Pyx_GOTREF(__pyx_v_n->_names);
            __Pyx_DECREF(__pyx_v_n->_names);
            __pyx_v_n->_names = ((PyObject*)__pyx_t_7);
            __pyx_t_7 = 0;
          }
          __pyx_L11:;

          /* "setools/policyrep/constraint.pxi":346
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:             # <<<<<<<<<<<<<<
 *                     n.types = True
 *                     if policy.version > 28:
*/
          goto __pyx_L10;
        }

        /* "setools/policyrep/constraint.pxi":356
 *                                              policy, &symbol.names))
 *                 else:
 *                     n.users = True             # <<<<<<<<<<<<<<
 *                     n._names = frozenset(u for u in UserEbitmapIterator.factory(policy,
 *                                                                                 &symbol.names))
*/
        /*else*/ {
          __pyx_v_n->users = 1;

          /* "setools/policyrep/constraint.pxi":357
 *                 else:
 *                     n.users = True
 *                     n._names = frozenset(u for u in UserEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 * 
*/
          __pyx_t_7 = __pyx_f_7setools_9policyrep_19UserEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->names)); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 357, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_9genexpr(NULL, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 357, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyFrozenSet_New(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 357, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GIVEREF(__pyx_t_7);
          __Pyx_GOTREF(__pyx_v_n->_names);
          __Pyx_DECREF(__pyx_v_n->_names);
          __pyx_v_n->_names = ((PyObject*)__pyx_t_7);
          __pyx_t_7 = 0;
        }
        __pyx_L10:;

        /* "setools/policyrep/constraint.pxi":341
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2
 * 
 *             if symbol.expr_type == sepol.CEXPR_NAMES:             # <<<<<<<<<<<<<<
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True
*/
      }

      /* "setools/policyrep/constraint.pxi":338
 *             n._symbol_type = symbol.attr
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2
 * 
*/
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "setools/policyrep/constraint.pxi":360
 *                                                                                 &symbol.names))
 * 
 *         except AttributeError:             # <<<<<<<<<<<<<<
 *             pass
 * 
*/
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError))));
    if (__pyx_t_9) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/constraint.pxi":338
 *             n._symbol_type = symbol.attr
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2
 * 
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    __pyx_L8_try_end:;
  }

  /* "setools/policyrep/constraint.pxi":366
 *         # Build expression
 *         #
 *         if n.expression_type == sepol.CEXPR_ATTR:             # <<<<<<<<<<<<<<
 *             # logical operator with symbols (e.g. u1 == u2)
 *             operand1 = n._sym_to_text[n.symbol_type]
*/
  switch (__pyx_v_n->expression_type) {
    case CEXPR_ATTR:

    /* "setools/policyrep/constraint.pxi":368
 *         if n.expression_type == sepol.CEXPR_ATTR:
 *             # logical operator with symbols (e.g. u1 == u2)
 *             operand1 = n._sym_to_text[n.symbol_type]             # <<<<<<<<<<<<<<
 *             operand2 = n._sym_to_text[n.symbol_type + sepol.CEXPR_TARGET]
 *             operator = n._expr_op_to_text[n.operator]
*/
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_sym_to_text); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 368, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_symbol_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 368, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 368, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_operand1 = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "setools/policyrep/constraint.pxi":369
 *             # logical operator with symbols (e.g. u1 == u2)
 *             operand1 = n._sym_to_text[n.symbol_type]
 *             operand2 = n._sym_to_text[n.symbol_type + sepol.CEXPR_TARGET]             # <<<<<<<<<<<<<<
 *             operator = n._expr_op_to_text[n.operator]
 * 
*/
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_sym_to_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_symbol_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_TARGET); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_10 = PyNumber_Add(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_v_operand2 = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "setools/policyrep/constraint.pxi":370
 *             operand1 = n._sym_to_text[n.symbol_type]
 *             operand2 = n._sym_to_text[n.symbol_type + sepol.CEXPR_TARGET]
 *             operator = n._expr_op_to_text[n.operator]             # <<<<<<<<<<<<<<
 * 
 *             n._expression = [operand1, operand2, operator]
*/
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_expr_op_to_text); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_n->__pyx_operator, uint32_t, 0, __Pyx_PyLong_From_uint32_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_v_operator = __pyx_t_10;
    __pyx_t_10 = 0;

    /* "setools/policyrep/constraint.pxi":372
 *             operator = n._expr_op_to_text[n.operator]
 * 
 *             n._expression = [operand1, operand2, operator]             # <<<<<<<<<<<<<<
 * 
 *         elif n.expression_type == sepol.CEXPR_NAMES:
*/
    __pyx_t_10 = PyList_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_v_operand1);
    __Pyx_GIVEREF(__pyx_v_operand1);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 0, __pyx_v_operand1) != (0)) __PYX_ERR(2, 372, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_operand2);
    __Pyx_GIVEREF(__pyx_v_operand2);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 1, __pyx_v_operand2) != (0)) __PYX_ERR(2, 372, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_operator);
    __Pyx_GIVEREF(__pyx_v_operator);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 2, __pyx_v_operator) != (0)) __PYX_ERR(2, 372, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_10);
    __Pyx_GOTREF(__pyx_v_n->_expression);
    __Pyx_DECREF(__pyx_v_n->_expression);
    __pyx_v_n->_expression = ((PyObject*)__pyx_t_10);
    __pyx_t_10 = 0;

    /* "setools/policyrep/constraint.pxi":366
 *         # Build expression
 *         #
 *         if n.expression_type == sepol.CEXPR_ATTR:             # <<<<<<<<<<<<<<
 *             # logical operator with symbols (e.g. u1 == u2)
 *             operand1 = n._sym_to_text[n.symbol_type]
*/
    break;
    case CEXPR_NAMES:

    /* "setools/policyrep/constraint.pxi":376
 *         elif n.expression_type == sepol.CEXPR_NAMES:
 *             # logical operator with type or attribute list (e.g. t1 == { spam_t eggs_t })
 *             operand1 = n._sym_to_text[n.symbol_type]             # <<<<<<<<<<<<<<
 *             operand2 = n.names
 *             operator = n._expr_op_to_text[n.operator]
*/
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_sym_to_text); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_symbol_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_v_operand1 = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "setools/policyrep/constraint.pxi":377
 *             # logical operator with type or attribute list (e.g. t1 == { spam_t eggs_t })
 *             operand1 = n._sym_to_text[n.symbol_type]
 *             operand2 = n.names             # <<<<<<<<<<<<<<
 *             operator = n._expr_op_to_text[n.operator]
 * 
*/
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_operand2 = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "setools/policyrep/constraint.pxi":378
 *             operand1 = n._sym_to_text[n.symbol_type]
 *             operand2 = n.names
 *             operator = n._expr_op_to_text[n.operator]             # <<<<<<<<<<<<<<
 * 
 *             n._expression = [operand1, operand2, operator]
*/
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_expr_op_to_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_n->__pyx_operator, uint32_t, 0, __Pyx_PyLong_From_uint32_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_operator = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "setools/policyrep/constraint.pxi":380
 *             operator = n._expr_op_to_text[n.operator]
 * 
 *             n._expression = [operand1, operand2, operator]             # <<<<<<<<<<<<<<
 * 
 *         else:
*/
    __pyx_t_7 = PyList_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 380, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_operand1);
    __Pyx_GIVEREF(__pyx_v_operand1);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_v_operand1) != (0)) __PYX_ERR(2, 380, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_operand2);
    __Pyx_GIVEREF(__pyx_v_operand2);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 1, __pyx_v_operand2) != (0)) __PYX_ERR(2, 380, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_operator);
    __Pyx_GIVEREF(__pyx_v_operator);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 2, __pyx_v_operator) != (0)) __PYX_ERR(2, 380, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    __Pyx_GOTREF(__pyx_v_n->_expression);
    __Pyx_DECREF(__pyx_v_n->_expression);
    __pyx_v_n->_expression = ((PyObject*)__pyx_t_7);
    __pyx_t_7 = 0;

    /* "setools/policyrep/constraint.pxi":374
 *             n._expression = [operand1, operand2, operator]
 * 
 *         elif n.expression_type == sepol.CEXPR_NAMES:             # <<<<<<<<<<<<<<
 *             # logical operator with type or attribute list (e.g. t1 == { spam_t eggs_t })
 *             operand1 = n._sym_to_text[n.symbol_type]
*/
    break;
    default:

    /* "setools/policyrep/constraint.pxi":384
 *         else:
 *             # individual operators (and/or/not)
 *             n._expression = [n._expr_type_to_text[n.expression_type]]             # <<<<<<<<<<<<<<
 * 
 *         return n
*/
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_n_u_expr_type_to_text); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_n->expression_type, uint32_t, 0, __Pyx_PyLong_From_uint32_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 384, __pyx_L1_error);
    __pyx_t_1 = 0;
    __Pyx_GIVEREF(__pyx_t_7);
    __Pyx_GOTREF(__pyx_v_n->_expression);
    __Pyx_DECREF(__pyx_v_n->_expression);
    __pyx_v_n->_expression = ((PyObject*)__pyx_t_7);
    __pyx_t_7 = 0;
    break;
  }

  /* "setools/policyrep/constraint.pxi":386
 *             n._expression = [n._expr_type_to_text[n.expression_type]]
 * 
 *         return n             # <<<<<<<<<<<<<<
 * 
 *     def __iter__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_n);
  __pyx_r = __pyx_v_n;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":323
 *                   sepol.CEXPR_USER + sepol.CEXPR_XTARGET]
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline ConstraintExprNode factory(SELinuxPolicy policy, sepol.constraint_expr_t *symbol):
 *         """Factory function for creating ConstraintExprNode objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_n);
  __Pyx_XDECREF(__pyx_v_operand1);
  __Pyx_XDECREF(__pyx_v_operand2);
  __Pyx_XDECREF(__pyx_v_operator);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_2generator15);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_5generator16);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_8generator17);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_11generator18);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":388
 *         return n
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return iter(self._expression)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_1__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_1__iter__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode___iter__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode___iter__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__iter__", 0);

  /* "setools/policyrep/constraint.pxi":389
 * 
 *     def __iter__(self):
 *         return iter(self._expression)             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, item):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_expression;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":388
 *         return n
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return iter(self._expression)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":391
 *         return iter(self._expression)
 * 
 *     def __contains__(self, item):             # <<<<<<<<<<<<<<
 *         return item in self._expression
 * 
*/

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_18ConstraintExprNode_3__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/
static int __pyx_pw_7setools_9policyrep_18ConstraintExprNode_3__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_2__contains__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self), ((PyObject *)__pyx_v_item));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7setools_9policyrep_18ConstraintExprNode_2__contains__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v_item) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "setools/policyrep/constraint.pxi":392
 * 
 *     def __contains__(self, item):
 *         return item in self._expression             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_item, __pyx_v_self->_expression, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 392, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":391
 *         return iter(self._expression)
 * 
 *     def __contains__(self, item):             # <<<<<<<<<<<<<<
 *         return item in self._expression
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":394
 *         return item in self._expression
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return len(self._expression)
 * 
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_18ConstraintExprNode_5__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_18ConstraintExprNode_5__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_4__len__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_18ConstraintExprNode_4__len__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/constraint.pxi":395
 * 
 *     def __len__(self):
 *         return len(self._expression)             # <<<<<<<<<<<<<<
 * 
 *     def __getitem__(self, idx):
*/
  __pyx_t_1 = __pyx_v_self->_expression;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(2, 395, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 395, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":394
 *         return item in self._expression
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return len(self._expression)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":397
 *         return len(self._expression)
 * 
 *     def __getitem__(self, idx):             # <<<<<<<<<<<<<<
 *         return self._expression[idx]
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_idx); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_idx) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_6__getitem__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self), ((PyObject *)__pyx_v_idx));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_6__getitem__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v_idx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__getitem__", 0);

  /* "setools/policyrep/constraint.pxi":398
 * 
 *     def __getitem__(self, idx):
 *         return self._expression[idx]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_expression == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(2, 398, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->_expression, __pyx_v_idx); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":397
 *         return len(self._expression)
 * 
 *     def __getitem__(self, idx):             # <<<<<<<<<<<<<<
 *         return self._expression[idx]
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":400
 *         return self._expression[idx]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def names(self):
 *         if self._names is None:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_5names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_5names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_5names___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_5names___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/constraint.pxi":402
 *     @property
 *     def names(self):
 *         if self._names is None:             # <<<<<<<<<<<<<<
 *             raise AttributeError("names")
 * 
*/
  __pyx_t_1 = (__pyx_v_self->_names == ((PyObject*)Py_None));
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/constraint.pxi":403
 *     def names(self):
 *         if self._names is None:
 *             raise AttributeError("names")             # <<<<<<<<<<<<<<
 * 
 *         return self._names
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_n_u_names};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_AttributeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 403, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(2, 403, __pyx_L1_error)

    /* "setools/policyrep/constraint.pxi":402
 *     @property
 *     def names(self):
 *         if self._names is None:             # <<<<<<<<<<<<<<
 *             raise AttributeError("names")
 * 
*/
  }

  /* "setools/policyrep/constraint.pxi":405
 *             raise AttributeError("names")
 * 
 *         return self._names             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_names);
  __pyx_r = __pyx_v_self->_names;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":400
 *         return self._expression[idx]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def names(self):
 *         if self._names is None:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.names.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":407
 *         return self._names
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def symbol_type(self):
 *         if self._symbol_type is None:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_11symbol_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_11symbol_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_11symbol_type___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_11symbol_type___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/constraint.pxi":409
 *     @property
 *     def symbol_type(self):
 *         if self._symbol_type is None:             # <<<<<<<<<<<<<<
 *             raise AttributeError("symbol_type")
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_symbol_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/constraint.pxi":410
 *     def symbol_type(self):
 *         if self._symbol_type is None:
 *             raise AttributeError("symbol_type")             # <<<<<<<<<<<<<<
 * 
 *         return self._symbol_type
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_n_u_symbol_type};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_AttributeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 410, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(2, 410, __pyx_L1_error)

    /* "setools/policyrep/constraint.pxi":409
 *     @property
 *     def symbol_type(self):
 *         if self._symbol_type is None:             # <<<<<<<<<<<<<<
 *             raise AttributeError("symbol_type")
 * 
*/
  }

  /* "setools/policyrep/constraint.pxi":412
 *             raise AttributeError("symbol_type")
 * 
 *         return self._symbol_type             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_symbol_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":407
 *         return self._names
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def symbol_type(self):
 *         if self._symbol_type is None:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.symbol_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":414
 *         return self._symbol_type
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_9statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18ConstraintExprNode_9statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_9statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_9statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_8statement(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_8statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/constraint.pxi":415
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(2, 415, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":414
 *         return self._symbol_type
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18ConstraintExprNode_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_10__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._expression, self._names, self._symbol_type, self.expression_type, self.key, self.mls, self.operator, self.policy, self.roles, self.types, self.users)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_symbol_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->expression_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_self->mls); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->__pyx_operator); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_self->roles); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->types); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_self->users); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyTuple_New(11); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(__pyx_v_self->_expression);
  __Pyx_GIVEREF(__pyx_v_self->_expression);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_self->_expression) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_names);
  __Pyx_GIVEREF(__pyx_v_self->_names);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_self->_names) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 4, __pyx_t_3) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 5, __pyx_t_4) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 6, __pyx_t_5) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 7, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 8, __pyx_t_6) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 9, __pyx_t_7) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_8);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 10, __pyx_t_8) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_9);
  __pyx_t_9 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._expression, self._names, self._symbol_type, self.expression_type, self.key, self.mls, self.operator, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_9 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_v__dict = __pyx_t_9;
  __pyx_t_9 = 0;

  /* "(tree fragment)":7
 *     state = (self._expression, self._names, self._symbol_type, self.expression_type, self.key, self.mls, self.operator, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_11 = (__pyx_v__dict != Py_None);
  if (__pyx_t_11) {
  } else {
    __pyx_t_10 = __pyx_t_11;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_10 = __pyx_t_11;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_10) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_8));
    __pyx_t_8 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._expression is not None or self._names is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._expression, self._names, self._symbol_type, self.expression_type, self.key, self.mls, self.operator, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._expression is not None or self._names is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x74e0c7a, None), state
*/
  /*else*/ {
    __pyx_t_11 = (__pyx_v_self->_expression != ((PyObject*)Py_None));
    if (!__pyx_t_11) {
    } else {
      __pyx_t_10 = __pyx_t_11;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_11 = (__pyx_v_self->_names != ((PyObject*)Py_None));
    if (!__pyx_t_11) {
    } else {
      __pyx_t_10 = __pyx_t_11;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_11 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_10 = __pyx_t_11;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_10;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._expression is not None or self._names is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x74e0c7a, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._expression is not None or self._names is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x74e0c7a, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x74e0c7a, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConstraintExprNod); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_122555514);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_122555514);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_mstate_global->__pyx_int_122555514) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_9);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_9) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_8 = 0;
    __pyx_t_9 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._expression is not None or self._names is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x74e0c7a, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x74e0c7a, None), state
 *     else:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x74e0c7a, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConstraintExprNode__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConstraintExprNod); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_122555514);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_122555514);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_mstate_global->__pyx_int_122555514) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_9);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_9) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_7 = 0;
    __pyx_t_9 = 0;
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x74e0c7a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConstraintExprNode__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18ConstraintExprNode_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_12__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x74e0c7a, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConstraintExprNode__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExprNode__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x74e0c7a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConstraintExprNode__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":430
 *         ObjClass tclass
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):
 *         """Constraint iterator factory."""
*/

static PyObject *__pyx_f_7setools_9policyrep_18ConstraintIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":433
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):
 *         """Constraint iterator factory."""
 *         c = ConstraintIterator()             # <<<<<<<<<<<<<<
 *         c.policy = policy
 *         c.head = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 433, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":434
 *         """Constraint iterator factory."""
 *         c = ConstraintIterator()
 *         c.policy = policy             # <<<<<<<<<<<<<<
 *         c.head = head
 *         c.tclass = tclass
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_c->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_c->__pyx_base.policy);
  __pyx_v_c->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":435
 *         c = ConstraintIterator()
 *         c.policy = policy
 *         c.head = head             # <<<<<<<<<<<<<<
 *         c.tclass = tclass
 *         c.reset()
*/
  __pyx_v_c->head = __pyx_v_head;

  /* "setools/policyrep/constraint.pxi":436
 *         c.policy = policy
 *         c.head = head
 *         c.tclass = tclass             # <<<<<<<<<<<<<<
 *         c.reset()
 *         return c
*/
  __Pyx_INCREF((PyObject *)__pyx_v_tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_tclass);
  __Pyx_GOTREF((PyObject *)__pyx_v_c->tclass);
  __Pyx_DECREF((PyObject *)__pyx_v_c->tclass);
  __pyx_v_c->tclass = __pyx_v_tclass;

  /* "setools/policyrep/constraint.pxi":437
 *         c.head = head
 *         c.tclass = tclass
 *         c.reset()             # <<<<<<<<<<<<<<
 *         return c
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_c);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":438
 *         c.tclass = tclass
 *         c.reset()
 *         return c             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_c);
  __pyx_r = ((PyObject *)__pyx_v_c);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":430
 *         ObjClass tclass
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):
 *         """Constraint iterator factory."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConstraintIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":440
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintIterator___next__(((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator___next__(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self) {
  PyObject *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  struct constraint_node *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/constraint.pxi":441
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (__pyx_v_self->curr == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/constraint.pxi":442
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = Constraint.factory(self.policy, self.tclass, self.curr)
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/constraint.pxi":441
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/constraint.pxi":444
 *             raise StopIteration
 * 
 *         item = Constraint.factory(self.policy, self.tclass, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_v_self->tclass);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = __pyx_f_7setools_9policyrep_10Constraint_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_3), __pyx_v_self->curr); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_item = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "setools/policyrep/constraint.pxi":445
 * 
 *         item = Constraint.factory(self.policy, self.tclass, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
*/
  __pyx_t_5 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_5;

  /* "setools/policyrep/constraint.pxi":446
 *         item = Constraint.factory(self.policy, self.tclass, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_item);
  __pyx_r = __pyx_v_item;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":440
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.ConstraintIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":448
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.constraint_node_t *curr
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_18ConstraintIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_18ConstraintIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_18ConstraintIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self) {
  constraint_node_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  constraint_node_t *__pyx_t_1;
  int __pyx_t_2;
  struct constraint_node *__pyx_t_3;

  /* "setools/policyrep/constraint.pxi":451
 *         cdef:
 *             sepol.constraint_node_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/constraint.pxi":453
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/constraint.pxi":454
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_curr != NULL);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/constraint.pxi":455
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
*/
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/constraint.pxi":456
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/constraint.pxi":458
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":448
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.constraint_node_t *curr
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":460
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_18ConstraintIterator_4reset, "Reset the iterator back to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_18ConstraintIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_18ConstraintIterator_4reset};
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintIterator_4reset(((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  constraint_node_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/constraint.pxi":462
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/constraint.pxi":460
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18ConstraintIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18ConstraintIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConstraintIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":469
 *     """Validatetrans iterator."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):
 *         """Validatetrans iterator factory."""
*/

static PyObject *__pyx_f_7setools_9policyrep_21ValidatetransIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_v = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":472
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):
 *         """Validatetrans iterator factory."""
 *         v = ValidatetransIterator()             # <<<<<<<<<<<<<<
 *         v.policy = policy
 *         v.head = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ValidatetransIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 472, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_v = ((struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":473
 *         """Validatetrans iterator factory."""
 *         v = ValidatetransIterator()
 *         v.policy = policy             # <<<<<<<<<<<<<<
 *         v.head = head
 *         v.tclass = tclass
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_v->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_v->__pyx_base.__pyx_base.policy);
  __pyx_v_v->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":474
 *         v = ValidatetransIterator()
 *         v.policy = policy
 *         v.head = head             # <<<<<<<<<<<<<<
 *         v.tclass = tclass
 *         v.reset()
*/
  __pyx_v_v->__pyx_base.head = __pyx_v_head;

  /* "setools/policyrep/constraint.pxi":475
 *         v.policy = policy
 *         v.head = head
 *         v.tclass = tclass             # <<<<<<<<<<<<<<
 *         v.reset()
 *         return v
*/
  __Pyx_INCREF((PyObject *)__pyx_v_tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_tclass);
  __Pyx_GOTREF((PyObject *)__pyx_v_v->__pyx_base.tclass);
  __Pyx_DECREF((PyObject *)__pyx_v_v->__pyx_base.tclass);
  __pyx_v_v->__pyx_base.tclass = __pyx_v_tclass;

  /* "setools/policyrep/constraint.pxi":476
 *         v.head = head
 *         v.tclass = tclass
 *         v.reset()             # <<<<<<<<<<<<<<
 *         return v
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_v);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 476, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":477
 *         v.tclass = tclass
 *         v.reset()
 *         return v             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_v);
  __pyx_r = ((PyObject *)__pyx_v_v);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":469
 *     """Validatetrans iterator."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):
 *         """Validatetrans iterator factory."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ValidatetransIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_v);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":479
 *         return v
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_21ValidatetransIterator___next__(((struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator___next__(struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self) {
  PyObject *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  struct constraint_node *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/constraint.pxi":480
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (__pyx_v_self->__pyx_base.curr == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/constraint.pxi":481
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = Validatetrans.factory(self.policy, self.tclass, self.curr)
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/constraint.pxi":480
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/constraint.pxi":483
 *             raise StopIteration
 * 
 *         item = Validatetrans.factory(self.policy, self.tclass, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.tclass);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = __pyx_f_7setools_9policyrep_13Validatetrans_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_3), __pyx_v_self->__pyx_base.curr); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_item = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "setools/policyrep/constraint.pxi":484
 * 
 *         item = Validatetrans.factory(self.policy, self.tclass, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
*/
  __pyx_t_5 = __pyx_v_self->__pyx_base.curr->next;
  __pyx_v_self->__pyx_base.curr = __pyx_t_5;

  /* "setools/policyrep/constraint.pxi":485
 *         item = Validatetrans.factory(self.policy, self.tclass, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_item);
  __pyx_r = __pyx_v_item;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":479
 *         return v
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.ValidatetransIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_21ValidatetransIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21ValidatetransIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_21ValidatetransIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ValidatetransIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_21ValidatetransIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21ValidatetransIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ValidatetransIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_21ValidatetransIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ValidatetransIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":501
 *         sepol.constraint_expr_t *curr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.constraint_expr_t *head):
 *         """Constraint expression iterator factory."""
*/

static PyObject *__pyx_f_7setools_9policyrep_22ConstraintExprIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_e = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":504
 *     cdef factory(SELinuxPolicy policy, sepol.constraint_expr_t *head):
 *         """Constraint expression iterator factory."""
 *         e = ConstraintExprIterator()             # <<<<<<<<<<<<<<
 *         e.policy = policy
 *         e.head = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_e = ((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":505
 *         """Constraint expression iterator factory."""
 *         e = ConstraintExprIterator()
 *         e.policy = policy             # <<<<<<<<<<<<<<
 *         e.head = head
 *         e.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_e->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_e->__pyx_base.policy);
  __pyx_v_e->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":506
 *         e = ConstraintExprIterator()
 *         e.policy = policy
 *         e.head = head             # <<<<<<<<<<<<<<
 *         e.reset()
 *         return e
*/
  __pyx_v_e->head = __pyx_v_head;

  /* "setools/policyrep/constraint.pxi":507
 *         e.policy = policy
 *         e.head = head
 *         e.reset()             # <<<<<<<<<<<<<<
 *         return e
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_e);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 507, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":508
 *         e.head = head
 *         e.reset()
 *         return e             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_e);
  __pyx_r = ((PyObject *)__pyx_v_e);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":501
 *         sepol.constraint_expr_t *curr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.constraint_expr_t *head):
 *         """Constraint expression iterator factory."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":510
 *         return e
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_22ConstraintExprIterator___next__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator___next__(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  struct constraint_expr *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/constraint.pxi":511
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (__pyx_v_self->curr == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/constraint.pxi":512
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = ConstraintExprNode.factory(self.policy, self.curr)
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/constraint.pxi":511
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/constraint.pxi":514
 *             raise StopIteration
 * 
 *         item = ConstraintExprNode.factory(self.policy, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_18ConstraintExprNode_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_self->curr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/constraint.pxi":515
 * 
 *         item = ConstraintExprNode.factory(self.policy, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
*/
  __pyx_t_4 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_4;

  /* "setools/policyrep/constraint.pxi":516
 *         item = ConstraintExprNode.factory(self.policy, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_item);
  __pyx_r = ((PyObject *)__pyx_v_item);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":510
 *         return e
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.ConstraintExprIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":518
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.constraint_expr_t *curr
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self) {
  constraint_expr_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  constraint_expr_t *__pyx_t_1;
  int __pyx_t_2;
  struct constraint_expr *__pyx_t_3;

  /* "setools/policyrep/constraint.pxi":521
 *         cdef:
 *             sepol.constraint_expr_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/constraint.pxi":523
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/constraint.pxi":524
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_curr != NULL);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/constraint.pxi":525
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
*/
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/constraint.pxi":526
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/constraint.pxi":528
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":518
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.constraint_expr_t *curr
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":530
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_22ConstraintExprIterator_4reset, "Reset the iterator back to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_22ConstraintExprIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_22ConstraintExprIterator_4reset};
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_4reset(((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  constraint_expr_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/constraint.pxi":532
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/constraint.pxi":530
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_22ConstraintExprIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_22ConstraintExprIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":17
 *         Range _range
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Context factory(SELinuxPolicy policy, sepol.context_struct_t *symbol):
 *         """Factory function for creating Context objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Context *__pyx_f_7setools_9policyrep_7Context_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, context_struct_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_c = 0;
  struct __pyx_obj_7setools_9policyrep_Context *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  user_datum_t *__pyx_t_2;
  role_datum_t *__pyx_t_3;
  type_datum_t *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/context.pxi":20
 *     cdef inline Context factory(SELinuxPolicy policy, sepol.context_struct_t *symbol):
 *         """Factory function for creating Context objects."""
 *         cdef Context c = Context.__new__(Context)             # <<<<<<<<<<<<<<
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Context(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 20, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/context.pxi":21
 *         """Factory function for creating Context objects."""
 *         cdef Context c = Context.__new__(Context)
 *         c.policy = policy             # <<<<<<<<<<<<<<
 *         c.key = <uintptr_t>symbol
 *         c.user = User.factory(policy, policy.user_value_to_datum(symbol.user - 1))
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_c->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_c->__pyx_base.policy);
  __pyx_v_c->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/context.pxi":22
 *         cdef Context c = Context.__new__(Context)
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         c.user = User.factory(policy, policy.user_value_to_datum(symbol.user - 1))
 *         c.role = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
*/
  __pyx_v_c->__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/context.pxi":23
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol
 *         c.user = User.factory(policy, policy.user_value_to_datum(symbol.user - 1))             # <<<<<<<<<<<<<<
 *         c.role = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         c.type_ = Type.factory(policy, policy.type_value_to_datum(symbol.type - 1))
*/
  __pyx_t_2 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->user - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 23, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_4User_factory(__pyx_v_policy, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_c->user);
  __Pyx_DECREF((PyObject *)__pyx_v_c->user);
  __pyx_v_c->user = ((struct __pyx_obj_7setools_9policyrep_User *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/context.pxi":24
 *         c.key = <uintptr_t>symbol
 *         c.user = User.factory(policy, policy.user_value_to_datum(symbol.user - 1))
 *         c.role = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))             # <<<<<<<<<<<<<<
 *         c.type_ = Type.factory(policy, policy.type_value_to_datum(symbol.type - 1))
 * 
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->role - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 24, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(__pyx_v_policy, __pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_c->role);
  __Pyx_DECREF((PyObject *)__pyx_v_c->role);
  __pyx_v_c->role = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/context.pxi":25
 *         c.user = User.factory(policy, policy.user_value_to_datum(symbol.user - 1))
 *         c.role = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         c.type_ = Type.factory(policy, policy.type_value_to_datum(symbol.type - 1))             # <<<<<<<<<<<<<<
 * 
 *         if policy.mls:
*/
  __pyx_t_4 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->type - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 25, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(__pyx_v_policy, __pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_c->type_);
  __Pyx_DECREF((PyObject *)__pyx_v_c->type_);
  __pyx_v_c->type_ = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/context.pxi":27
 *         c.type_ = Type.factory(policy, policy.type_value_to_datum(symbol.type - 1))
 * 
 *         if policy.mls:             # <<<<<<<<<<<<<<
 *             c._range = Range.factory(policy, &symbol.range)
 * 
*/
  if (__pyx_v_policy->mls) {

    /* "setools/policyrep/context.pxi":28
 * 
 *         if policy.mls:
 *             c._range = Range.factory(policy, &symbol.range)             # <<<<<<<<<<<<<<
 * 
 *         return c
*/
    __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_5Range_factory(__pyx_v_policy, (&__pyx_v_symbol->range))); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF((PyObject *)__pyx_v_c->_range);
    __Pyx_DECREF((PyObject *)__pyx_v_c->_range);
    __pyx_v_c->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/context.pxi":27
 *         c.type_ = Type.factory(policy, policy.type_value_to_datum(symbol.type - 1))
 * 
 *         if policy.mls:             # <<<<<<<<<<<<<<
 *             c._range = Range.factory(policy, &symbol.range)
 * 
*/
  }

  /* "setools/policyrep/context.pxi":30
 *             c._range = Range.factory(policy, &symbol.range)
 * 
 *         return c             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_c);
  __pyx_r = __pyx_v_c;
  goto __pyx_L0;

  /* "setools/policyrep/context.pxi":17
 *         Range _range
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Context factory(SELinuxPolicy policy, sepol.context_struct_t *symbol):
 *         """Factory function for creating Context objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Context.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":32
 *         return c
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Context factory_from_string(SELinuxPolicy policy, str ctx):
 *         """Factory function for creating Context objects from a string."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Context *__pyx_f_7setools_9policyrep_7Context_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_ctx) {
  struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_c = 0;
  PyObject *__pyx_v_items = 0;
  PyObject *__pyx_v_ex = NULL;
  struct __pyx_obj_7setools_9policyrep_Context *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12[6];
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16[7];
  int __pyx_t_17;
  int __pyx_t_18;
  char const *__pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  PyObject *__pyx_t_24 = NULL;
  PyObject *__pyx_t_25 = NULL;
  PyObject *__pyx_t_26[3];
  PyObject *__pyx_t_27 = NULL;
  char const *__pyx_t_28;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory_from_string", 0);

  /* "setools/policyrep/context.pxi":36
 *         """Factory function for creating Context objects from a string."""
 *         cdef:
 *             Context c = Context.__new__(Context)             # <<<<<<<<<<<<<<
 *             list items = ctx.split(":", maxsplit=3)
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Context(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 36, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/context.pxi":37
 *         cdef:
 *             Context c = Context.__new__(Context)
 *             list items = ctx.split(":", maxsplit=3)             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
  __pyx_t_2 = __pyx_v_ctx;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u__13};
    __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_maxsplit, __pyx_mstate_global->__pyx_int_3, __pyx_t_4, __pyx_callargs+2, 0) < (0)) __PYX_ERR(9, 37, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_split, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_items = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/context.pxi":39
 *             list items = ctx.split(":", maxsplit=3)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             c.user = policy.lookup_user(items[0])
 *             c.role = policy.lookup_role(items[1])
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_7);
    /*try:*/ {

      /* "setools/policyrep/context.pxi":40
 * 
 *         try:
 *             c.user = policy.lookup_user(items[0])             # <<<<<<<<<<<<<<
 *             c.role = policy.lookup_role(items[1])
 *             c.type_ = policy.lookup_type(items[2])
*/
      __pyx_t_4 = ((PyObject *)__pyx_v_policy);
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_items, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 40, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lookup_user, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 40, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_User))))) __PYX_ERR(9, 40, __pyx_L3_error)
      __Pyx_GIVEREF(__pyx_t_1);
      __Pyx_GOTREF((PyObject *)__pyx_v_c->user);
      __Pyx_DECREF((PyObject *)__pyx_v_c->user);
      __pyx_v_c->user = ((struct __pyx_obj_7setools_9policyrep_User *)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/context.pxi":41
 *         try:
 *             c.user = policy.lookup_user(items[0])
 *             c.role = policy.lookup_role(items[1])             # <<<<<<<<<<<<<<
 *             c.type_ = policy.lookup_type(items[2])
 * 
*/
      __pyx_t_2 = ((PyObject *)__pyx_v_policy);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_items, 1, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 41, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lookup_role, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 41, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Role))))) __PYX_ERR(9, 41, __pyx_L3_error)
      __Pyx_GIVEREF(__pyx_t_1);
      __Pyx_GOTREF((PyObject *)__pyx_v_c->role);
      __Pyx_DECREF((PyObject *)__pyx_v_c->role);
      __pyx_v_c->role = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/context.pxi":42
 *             c.user = policy.lookup_user(items[0])
 *             c.role = policy.lookup_role(items[1])
 *             c.type_ = policy.lookup_type(items[2])             # <<<<<<<<<<<<<<
 * 
 *             # object_r is a special case: it is implicitly associated with
*/
      __pyx_t_4 = ((PyObject *)__pyx_v_policy);
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_items, 2, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 42, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lookup_type, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 42, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type))))) __PYX_ERR(9, 42, __pyx_L3_error)
      __Pyx_GIVEREF(__pyx_t_1);
      __Pyx_GOTREF((PyObject *)__pyx_v_c->type_);
      __Pyx_DECREF((PyObject *)__pyx_v_c->type_);
      __pyx_v_c->type_ = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/context.pxi":46
 *             # object_r is a special case: it is implicitly associated with
 *             # all users and types.
 *             if c.role != "object_r":             # <<<<<<<<<<<<<<
 *                 if c.role not in c.user.roles:
 *                     raise InvalidContext(
*/
      __pyx_t_8 = (__Pyx_PyUnicode_Equals(((PyObject *)__pyx_v_c->role), __pyx_mstate_global->__pyx_n_u_object_r, Py_NE)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(9, 46, __pyx_L3_error)
      if (__pyx_t_8) {

        /* "setools/policyrep/context.pxi":47
 *             # all users and types.
 *             if c.role != "object_r":
 *                 if c.role not in c.user.roles:             # <<<<<<<<<<<<<<
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Role {c.role} is not associated to user {c.user}.")
*/
        __pyx_t_8 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_c->role), __pyx_v_c->user->roles, Py_NE)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(9, 47, __pyx_L3_error)
        if (unlikely(__pyx_t_8)) {

          /* "setools/policyrep/context.pxi":48
 *             if c.role != "object_r":
 *                 if c.role not in c.user.roles:
 *                     raise InvalidContext(             # <<<<<<<<<<<<<<
 *                         f"{ctx} is invalid: Role {c.role} is not associated to user {c.user}.")
 *                 if c.type_ not in tuple(c.role.types()):
*/
          __pyx_t_2 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InvalidContext); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 48, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_4);

          /* "setools/policyrep/context.pxi":49
 *                 if c.role not in c.user.roles:
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Role {c.role} is not associated to user {c.user}.")             # <<<<<<<<<<<<<<
 *                 if c.type_ not in tuple(c.role.types()):
 *                     raise InvalidContext(
*/
          __pyx_t_9 = __Pyx_PyUnicode_Unicode(__pyx_v_ctx); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 49, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_10 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_c->role), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 49, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_c->user), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 49, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_12[0] = __pyx_t_9;
          __pyx_t_12[1] = __pyx_mstate_global->__pyx_kp_u_is_invalid_Role;
          __pyx_t_12[2] = __pyx_t_10;
          __pyx_t_12[3] = __pyx_mstate_global->__pyx_kp_u_is_not_associated_to_user;
          __pyx_t_12[4] = __pyx_t_11;
          __pyx_t_12[5] = __pyx_mstate_global->__pyx_kp_u__14;
          __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_12, 6, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 18 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 27 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11));
          if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 49, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_3 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
            assert(__pyx_t_2);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
            __pyx_t_3 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_13};
            __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 48, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_Raise(__pyx_t_1, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __PYX_ERR(9, 48, __pyx_L3_error)

          /* "setools/policyrep/context.pxi":47
 *             # all users and types.
 *             if c.role != "object_r":
 *                 if c.role not in c.user.roles:             # <<<<<<<<<<<<<<
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Role {c.role} is not associated to user {c.user}.")
*/
        }

        /* "setools/policyrep/context.pxi":50
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Role {c.role} is not associated to user {c.user}.")
 *                 if c.type_ not in tuple(c.role.types()):             # <<<<<<<<<<<<<<
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Type {c.type_} is not associated to role {c.role}.")
*/
        __pyx_t_4 = ((PyObject *)__pyx_v_c->role);
        __Pyx_INCREF(__pyx_t_4);
        __pyx_t_3 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
          __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_types, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 50, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 50, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_8 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_c->type_), __pyx_t_4, Py_NE)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(9, 50, __pyx_L3_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(__pyx_t_8)) {

          /* "setools/policyrep/context.pxi":51
 *                         f"{ctx} is invalid: Role {c.role} is not associated to user {c.user}.")
 *                 if c.type_ not in tuple(c.role.types()):
 *                     raise InvalidContext(             # <<<<<<<<<<<<<<
 *                         f"{ctx} is invalid: Type {c.type_} is not associated to role {c.role}.")
 * 
*/
          __pyx_t_1 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_InvalidContext); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 51, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_13);

          /* "setools/policyrep/context.pxi":52
 *                 if c.type_ not in tuple(c.role.types()):
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Type {c.type_} is not associated to role {c.role}.")             # <<<<<<<<<<<<<<
 * 
 *             if policy.mls:
*/
          __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 52, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_11 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_c->type_), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 52, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_10 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_c->role), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 52, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_12[0] = __pyx_t_2;
          __pyx_t_12[1] = __pyx_mstate_global->__pyx_kp_u_is_invalid_Type;
          __pyx_t_12[2] = __pyx_t_11;
          __pyx_t_12[3] = __pyx_mstate_global->__pyx_kp_u_is_not_associated_to_role;
          __pyx_t_12[4] = __pyx_t_10;
          __pyx_t_12[5] = __pyx_mstate_global->__pyx_kp_u__14;
          __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_12, 6, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 18 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 27 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10));
          if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 52, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_3 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_13);
            assert(__pyx_t_1);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
            __Pyx_INCREF(__pyx_t_1);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
            __pyx_t_3 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_9};
            __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 51, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_Raise(__pyx_t_4, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __PYX_ERR(9, 51, __pyx_L3_error)

          /* "setools/policyrep/context.pxi":50
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Role {c.role} is not associated to user {c.user}.")
 *                 if c.type_ not in tuple(c.role.types()):             # <<<<<<<<<<<<<<
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Type {c.type_} is not associated to role {c.role}.")
*/
        }

        /* "setools/policyrep/context.pxi":46
 *             # object_r is a special case: it is implicitly associated with
 *             # all users and types.
 *             if c.role != "object_r":             # <<<<<<<<<<<<<<
 *                 if c.role not in c.user.roles:
 *                     raise InvalidContext(
*/
      }

      /* "setools/policyrep/context.pxi":54
 *                         f"{ctx} is invalid: Type {c.type_} is not associated to role {c.role}.")
 * 
 *             if policy.mls:             # <<<<<<<<<<<<<<
 *                 c._range = policy.lookup_range(items[3])
 *                 if not c._range <= c.user.mls_range:
*/
      if (__pyx_v_policy->mls) {

        /* "setools/policyrep/context.pxi":55
 * 
 *             if policy.mls:
 *                 c._range = policy.lookup_range(items[3])             # <<<<<<<<<<<<<<
 *                 if not c._range <= c.user.mls_range:
 *                     raise InvalidContext(
*/
        __pyx_t_13 = ((PyObject *)__pyx_v_policy);
        __Pyx_INCREF(__pyx_t_13);
        __pyx_t_9 = __Pyx_GetItemInt_List(__pyx_v_items, 3, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 55, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_3 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_9};
          __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lookup_range, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 55, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range))))) __PYX_ERR(9, 55, __pyx_L3_error)
        __Pyx_GIVEREF(__pyx_t_4);
        __Pyx_GOTREF((PyObject *)__pyx_v_c->_range);
        __Pyx_DECREF((PyObject *)__pyx_v_c->_range);
        __pyx_v_c->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_4);
        __pyx_t_4 = 0;

        /* "setools/policyrep/context.pxi":56
 *             if policy.mls:
 *                 c._range = policy.lookup_range(items[3])
 *                 if not c._range <= c.user.mls_range:             # <<<<<<<<<<<<<<
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Range {c._range} not in user {c.user}'s "
*/
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_c->user), __pyx_mstate_global->__pyx_n_u_mls_range); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 56, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_9 = PyObject_RichCompare(((PyObject *)__pyx_v_c->_range), __pyx_t_4, Py_LE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 56, __pyx_L3_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(9, 56, __pyx_L3_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_14 = (!__pyx_t_8);
        if (unlikely(__pyx_t_14)) {

          /* "setools/policyrep/context.pxi":57
 *                 c._range = policy.lookup_range(items[3])
 *                 if not c._range <= c.user.mls_range:
 *                     raise InvalidContext(             # <<<<<<<<<<<<<<
 *                         f"{ctx} is invalid: Range {c._range} not in user {c.user}'s "
 *                         f"allowed range {c.user.mls_range}")
*/
          __pyx_t_4 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_InvalidContext); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 57, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_13);

          /* "setools/policyrep/context.pxi":58
 *                 if not c._range <= c.user.mls_range:
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Range {c._range} not in user {c.user}'s "             # <<<<<<<<<<<<<<
 *                         f"allowed range {c.user.mls_range}")
 * 
*/
          __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 58, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_10 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_c->_range), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 58, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_c->user), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 58, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_11);

          /* "setools/policyrep/context.pxi":59
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Range {c._range} not in user {c.user}'s "
 *                         f"allowed range {c.user.mls_range}")             # <<<<<<<<<<<<<<
 * 
 *             c.policy = policy
*/
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_c->user), __pyx_mstate_global->__pyx_n_u_mls_range); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 59, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_15 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 59, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_16[0] = __pyx_t_1;
          __pyx_t_16[1] = __pyx_mstate_global->__pyx_kp_u_is_invalid_Range;
          __pyx_t_16[2] = __pyx_t_10;
          __pyx_t_16[3] = __pyx_mstate_global->__pyx_kp_u_not_in_user;
          __pyx_t_16[4] = __pyx_t_11;
          __pyx_t_16[5] = __pyx_mstate_global->__pyx_kp_u_s_allowed_range;
          __pyx_t_16[6] = __pyx_t_15;

          /* "setools/policyrep/context.pxi":58
 *                 if not c._range <= c.user.mls_range:
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Range {c._range} not in user {c.user}'s "             # <<<<<<<<<<<<<<
 *                         f"allowed range {c.user.mls_range}")
 * 
*/
          __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_16, 7, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 19 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 17 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_15));
          if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 58, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_3 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
            assert(__pyx_t_4);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
            __pyx_t_3 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
            __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 57, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_9);
          }
          __Pyx_Raise(__pyx_t_9, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __PYX_ERR(9, 57, __pyx_L3_error)

          /* "setools/policyrep/context.pxi":56
 *             if policy.mls:
 *                 c._range = policy.lookup_range(items[3])
 *                 if not c._range <= c.user.mls_range:             # <<<<<<<<<<<<<<
 *                     raise InvalidContext(
 *                         f"{ctx} is invalid: Range {c._range} not in user {c.user}'s "
*/
        }

        /* "setools/policyrep/context.pxi":54
 *                         f"{ctx} is invalid: Type {c.type_} is not associated to role {c.role}.")
 * 
 *             if policy.mls:             # <<<<<<<<<<<<<<
 *                 c._range = policy.lookup_range(items[3])
 *                 if not c._range <= c.user.mls_range:
*/
      }

      /* "setools/policyrep/context.pxi":61
 *                         f"allowed range {c.user.mls_range}")
 * 
 *             c.policy = policy             # <<<<<<<<<<<<<<
 *             return c
 * 
*/
      __Pyx_INCREF((PyObject *)__pyx_v_policy);
      __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
      __Pyx_GOTREF((PyObject *)__pyx_v_c->__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_v_c->__pyx_base.policy);
      __pyx_v_c->__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/context.pxi":62
 * 
 *             c.policy = policy
 *             return c             # <<<<<<<<<<<<<<
 * 
 *         except IndexError as ex:
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __Pyx_INCREF((PyObject *)__pyx_v_c);
      __pyx_r = __pyx_v_c;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/context.pxi":39
 *             list items = ctx.split(":", maxsplit=3)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             c.user = policy.lookup_user(items[0])
 *             c.role = policy.lookup_role(items[1])
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "setools/policyrep/context.pxi":64
 *             return c
 * 
 *         except IndexError as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidContext("f{ctx} is invalid: Context is incomplete.") from ex
 * 
*/
    __pyx_t_17 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError))));
    if (__pyx_t_17) {
      __Pyx_AddTraceback("setools.policyrep.Context.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_13, &__pyx_t_2) < 0) __PYX_ERR(9, 64, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_13);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_13);
      __pyx_v_ex = __pyx_t_13;
      /*try:*/ {

        /* "setools/policyrep/context.pxi":65
 * 
 *         except IndexError as ex:
 *             raise InvalidContext("f{ctx} is invalid: Context is incomplete.") from ex             # <<<<<<<<<<<<<<
 * 
 *         except InvalidSymbol as ex:
*/
        __pyx_t_15 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_InvalidContext); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 65, __pyx_L19_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_3 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_11);
          assert(__pyx_t_15);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
          __Pyx_INCREF(__pyx_t_15);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
          __pyx_t_3 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_mstate_global->__pyx_kp_u_f_ctx_is_invalid_Context_is_inco};
          __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 65, __pyx_L19_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_Raise(__pyx_t_4, 0, 0, __pyx_v_ex);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __PYX_ERR(9, 65, __pyx_L19_error)
      }

      /* "setools/policyrep/context.pxi":64
 *             return c
 * 
 *         except IndexError as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidContext("f{ctx} is invalid: Context is incomplete.") from ex
 * 
*/
      /*finally:*/ {
        __pyx_L19_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25);
          if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_23);
          __Pyx_XGOTREF(__pyx_t_24);
          __Pyx_XGOTREF(__pyx_t_25);
          __pyx_t_17 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_23);
          __Pyx_XGIVEREF(__pyx_t_24);
          __Pyx_XGIVEREF(__pyx_t_25);
          __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_24, __pyx_t_25);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_22);
          __Pyx_ErrRestore(__pyx_t_20, __pyx_t_21, __pyx_t_22);
          __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0;
          __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19;
          goto __pyx_L5_except_error;
        }
      }
    }

    /* "setools/policyrep/context.pxi":67
 *             raise InvalidContext("f{ctx} is invalid: Context is incomplete.") from ex
 * 
 *         except InvalidSymbol as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidContext(f"{ctx} is invalid: {ex}") from ex
 * 
*/
    __Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_13, &__pyx_t_9);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InvalidSymbol); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 67, __pyx_L5_except_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_18 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_ErrRestore(__pyx_t_2, __pyx_t_13, __pyx_t_9);
    __pyx_t_2 = 0; __pyx_t_13 = 0; __pyx_t_9 = 0;
    if (__pyx_t_18) {
      __Pyx_AddTraceback("setools.policyrep.Context.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_13, &__pyx_t_2) < 0) __PYX_ERR(9, 67, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_13);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_13);
      __pyx_v_ex = __pyx_t_13;
      /*try:*/ {

        /* "setools/policyrep/context.pxi":68
 * 
 *         except InvalidSymbol as ex:
 *             raise InvalidContext(f"{ctx} is invalid: {ex}") from ex             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
        __pyx_t_11 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_InvalidContext); if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 68, __pyx_L30_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_10 = __Pyx_PyUnicode_Unicode(__pyx_v_ctx); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 68, __pyx_L30_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_ex, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 68, __pyx_L30_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_26[0] = __pyx_t_10;
        __pyx_t_26[1] = __pyx_mstate_global->__pyx_kp_u_is_invalid;
        __pyx_t_26[2] = __pyx_t_1;
        __pyx_t_27 = __Pyx_PyUnicode_Join(__pyx_t_26, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
        if (unlikely(!__pyx_t_27)) __PYX_ERR(9, 68, __pyx_L30_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_15))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_15);
          assert(__pyx_t_11);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_15, __pyx__function);
          __pyx_t_3 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_27};
          __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_15, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 68, __pyx_L30_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_Raise(__pyx_t_4, 0, 0, __pyx_v_ex);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __PYX_ERR(9, 68, __pyx_L30_error)
      }

      /* "setools/policyrep/context.pxi":67
 *             raise InvalidContext("f{ctx} is invalid: Context is incomplete.") from ex
 * 
 *         except InvalidSymbol as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidContext(f"{ctx} is invalid: {ex}") from ex
 * 
*/
      /*finally:*/ {
        __pyx_L30_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20);
          if ( unlikely(__Pyx_GetException(&__pyx_t_25, &__pyx_t_24, &__pyx_t_23) < 0)) __Pyx_ErrFetch(&__pyx_t_25, &__pyx_t_24, &__pyx_t_23);
          __Pyx_XGOTREF(__pyx_t_25);
          __Pyx_XGOTREF(__pyx_t_24);
          __Pyx_XGOTREF(__pyx_t_23);
          __Pyx_XGOTREF(__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_20);
          __pyx_t_18 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_28 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_22);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_21, __pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_25);
          __Pyx_XGIVEREF(__pyx_t_24);
          __Pyx_XGIVEREF(__pyx_t_23);
          __Pyx_ErrRestore(__pyx_t_25, __pyx_t_24, __pyx_t_23);
          __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0;
          __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_28;
          goto __pyx_L5_except_error;
        }
      }
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/context.pxi":39
 *             list items = ctx.split(":", maxsplit=3)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             c.user = policy.lookup_user(items[0])
 *             c.role = policy.lookup_role(items[1])
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
    goto __pyx_L0;
  }

  /* "setools/policyrep/context.pxi":32
 *         return c
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Context factory_from_string(SELinuxPolicy policy, str ctx):
 *         """Factory function for creating Context objects from a string."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_27);
  __Pyx_AddTraceback("setools.policyrep.Context.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_items);
  __Pyx_XDECREF(__pyx_v_ex);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":70
 *             raise InvalidContext(f"{ctx} is invalid: {ex}") from ex
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self._range:
 *             return f"{self.user}:{self.role}:{self.type_}:{self.range_}"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_1__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context___str__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Context___str__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[7];
  PyObject *__pyx_t_8[5];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/context.pxi":71
 * 
 *     def __str__(self):
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return f"{self.user}:{self.role}:{self.type_}:{self.range_}"
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_range)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(9, 71, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/context.pxi":72
 *     def __str__(self):
 *         if self._range:
 *             return f"{self.user}:{self.role}:{self.type_}:{self.range_}"             # <<<<<<<<<<<<<<
 *         else:
 *             return f"{self.user}:{self.role}:{self.type_}"
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->user), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 72, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->role), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 72, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->type_), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 72, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_range); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 72, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 72, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7[0] = __pyx_t_2;
    __pyx_t_7[1] = __pyx_mstate_global->__pyx_kp_u__13;
    __pyx_t_7[2] = __pyx_t_3;
    __pyx_t_7[3] = __pyx_mstate_global->__pyx_kp_u__13;
    __pyx_t_7[4] = __pyx_t_4;
    __pyx_t_7[5] = __pyx_mstate_global->__pyx_kp_u__13;
    __pyx_t_7[6] = __pyx_t_6;
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_7, 7, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 72, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/context.pxi":71
 * 
 *     def __str__(self):
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return f"{self.user}:{self.role}:{self.type_}:{self.range_}"
 *         else:
*/
  }

  /* "setools/policyrep/context.pxi":74
 *             return f"{self.user}:{self.role}:{self.type_}:{self.range_}"
 *         else:
 *             return f"{self.user}:{self.role}:{self.type_}"             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->user), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->role), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->type_), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8[0] = __pyx_t_5;
    __pyx_t_8[1] = __pyx_mstate_global->__pyx_kp_u__13;
    __pyx_t_8[2] = __pyx_t_6;
    __pyx_t_8[3] = __pyx_mstate_global->__pyx_kp_u__13;
    __pyx_t_8[4] = __pyx_t_4;
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_8, 5, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/context.pxi":70
 *             raise InvalidContext(f"{ctx} is invalid: {ex}") from ex
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self._range:
 *             return f"{self.user}:{self.role}:{self.type_}:{self.range_}"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Context.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":76
 *             return f"{self.user}:{self.role}:{self.type_}"
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def range_(self):
 *         """The MLS range of the context."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_6range__1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_6range__1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_6range____get__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Context_6range____get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/context.pxi":79
 *     def range_(self):
 *         """The MLS range of the context."""
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return self._range
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_range)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(9, 79, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/context.pxi":80
 *         """The MLS range of the context."""
 *         if self._range:
 *             return self._range             # <<<<<<<<<<<<<<
 *         else:
 *             raise MLSDisabled
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_self->_range);
    __pyx_r = ((PyObject *)__pyx_v_self->_range);
    goto __pyx_L0;

    /* "setools/policyrep/context.pxi":79
 *     def range_(self):
 *         """The MLS range of the context."""
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return self._range
 *         else:
*/
  }

  /* "setools/policyrep/context.pxi":82
 *             return self._range
 *         else:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 82, __pyx_L1_error)
  }

  /* "setools/policyrep/context.pxi":76
 *             return f"{self.user}:{self.role}:{self.type_}"
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def range_(self):
 *         """The MLS range of the context."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Context.range_.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":84
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_3statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Context_3statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Context_3statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Context_3statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_2statement(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Context_2statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/context.pxi":85
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(9, 85, __pyx_L1_error)

  /* "setools/policyrep/context.pxi":84
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Context.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":12
 * 
 *     cdef:
 *         readonly User user             # <<<<<<<<<<<<<<
 *         readonly Role role
 *         readonly Type type_
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_4user_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_4user_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_4user___get__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Context_4user___get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->user);
  __pyx_r = ((PyObject *)__pyx_v_self->user);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":13
 *     cdef:
 *         readonly User user
 *         readonly Role role             # <<<<<<<<<<<<<<
 *         readonly Type type_
 *         Range _range
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_4role_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_4role_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_4role___get__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Context_4role___get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->role);
  __pyx_r = ((PyObject *)__pyx_v_self->role);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":14
 *         readonly User user
 *         readonly Role role
 *         readonly Type type_             # <<<<<<<<<<<<<<
 *         Range _range
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_5type__1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_5type__1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_5type____get__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Context_5type____get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->type_);
  __pyx_r = ((PyObject *)__pyx_v_self->type_);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Context_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Context_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Context_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Context_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._range, self.key, self.policy, self.role, self.type_, self.user)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_range);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_range);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->_range)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->role);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->role);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->role)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->type_);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->type_);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->type_)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->user);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->user);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->user)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._range, self.key, self.policy, self.role, self.type_, self.user)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._range, self.key, self.policy, self.role, self.type_, self.user)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._range is not None or self.policy is not None or self.role is not None or self.type_ is not None or self.user is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._range, self.key, self.policy, self.role, self.type_, self.user)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._range is not None or self.policy is not None or self.role is not None or self.type_ is not None or self.user is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Context, (type(self), 0x50dd136, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->_range) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->role) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->type_) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->user) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._range is not None or self.policy is not None or self.role is not None or self.type_ is not None or self.user is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Context, (type(self), 0x50dd136, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._range is not None or self.policy is not None or self.role is not None or self.type_ is not None or self.user is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Context, (type(self), 0x50dd136, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Context, (type(self), 0x50dd136, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Context); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_84791606);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_84791606);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_84791606) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._range is not None or self.policy is not None or self.role is not None or self.type_ is not None or self.user is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Context, (type(self), 0x50dd136, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Context, (type(self), 0x50dd136, None), state
 *     else:
 *         return __pyx_unpickle_Context, (type(self), 0x50dd136, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Context__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Context); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_84791606);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_84791606);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_84791606) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Context.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Context, (type(self), 0x50dd136, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Context__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Context_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Context_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Context_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Context.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Context_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Context, (type(self), 0x50dd136, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Context__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Context__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Context, (type(self), 0x50dd136, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Context__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Context.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":31
 *     glblub = sepol.DEFAULT_GLBLUB
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultValue_1from_default_range(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12DefaultValue_1from_default_range = {"from_default_range", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12DefaultValue_1from_default_range, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultValue_1from_default_range(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_cls = 0;
  PyObject *__pyx_v_range_ = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_default_range (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cls,&__pyx_mstate_global->__pyx_n_u_range,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 31, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 31, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 31, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "from_default_range", 0) < (0)) __PYX_ERR(10, 31, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("from_default_range", 1, 2, 2, i); __PYX_ERR(10, 31, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 31, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 31, __pyx_L3_error)
    }
    __pyx_v_cls = values[0];
    __pyx_v_range_ = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("from_default_range", 1, 2, 2, __pyx_nargs); __PYX_ERR(10, 31, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.DefaultValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultValue_from_default_range(__pyx_self, __pyx_v_cls, __pyx_v_range_);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultValue_from_default_range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_range_) {
  PyObject *__pyx_v_default_map = NULL;
  PyObject *__pyx_v_e = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  char const *__pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("from_default_range", 0);

  /* "setools/policyrep/default.pxi":33
 *     @classmethod
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: sepol.DEFAULT_SOURCE,
*/
  __pyx_t_1 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_SOURCE_LOW); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_SOURCE); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_t_3) < (0)) __PYX_ERR(10, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/default.pxi":34
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_TARGET_LOW: sepol.DEFAULT_TARGET,
*/
  __pyx_t_3 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_SOURCE_HIGH); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_SOURCE); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_t_2) < (0)) __PYX_ERR(10, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":35
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: sepol.DEFAULT_SOURCE,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_LOW: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_HIGH: sepol.DEFAULT_TARGET,
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_SOURCE_LOW_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_SOURCE); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_t_3) < (0)) __PYX_ERR(10, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/default.pxi":36
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_TARGET_LOW: sepol.DEFAULT_TARGET,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_HIGH: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: sepol.DEFAULT_TARGET,
*/
  __pyx_t_3 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_TARGET_LOW); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_TARGET); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_t_2) < (0)) __PYX_ERR(10, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":37
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_TARGET_LOW: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_HIGH: sepol.DEFAULT_TARGET,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_TARGET_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_TARGET); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_t_3) < (0)) __PYX_ERR(10, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/default.pxi":38
 *                        sepol.DEFAULT_TARGET_LOW: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_HIGH: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: sepol.DEFAULT_TARGET,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}
 * 
*/
  __pyx_t_3 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_TARGET_LOW_HIGH); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_TARGET); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_t_2) < (0)) __PYX_ERR(10, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":39
 *                        sepol.DEFAULT_TARGET_HIGH: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_GLBLUB); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_GLBLUB); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_t_3) < (0)) __PYX_ERR(10, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_default_map = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/default.pxi":41
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls(default_map[range_])
 *         except KeyError as e:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_6);
    /*try:*/ {

      /* "setools/policyrep/default.pxi":42
 * 
 *         try:
 *             return cls(default_map[range_])             # <<<<<<<<<<<<<<
 *         except KeyError as e:
 *             raise LowLevelPolicyError(f"Unsupported default value: {e}") from e
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = NULL;
      __Pyx_INCREF(__pyx_v_cls);
      __pyx_t_2 = __pyx_v_cls; 
      __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_default_map, __pyx_v_range_); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 42, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        assert(__pyx_t_3);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_7};
        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 42, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/default.pxi":41
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls(default_map[range_])
 *         except KeyError as e:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "setools/policyrep/default.pxi":43
 *         try:
 *             return cls(default_map[range_])
 *         except KeyError as e:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError(f"Unsupported default value: {e}") from e
 * 
*/
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_9) {
      __Pyx_AddTraceback("setools.policyrep.DefaultValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_7) < 0) __PYX_ERR(10, 43, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_v_e = __pyx_t_2;
      /*try:*/ {

        /* "setools/policyrep/default.pxi":44
 *             return cls(default_map[range_])
 *         except KeyError as e:
 *             raise LowLevelPolicyError(f"Unsupported default value: {e}") from e             # <<<<<<<<<<<<<<
 * 
 * 
*/
        __pyx_t_10 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_LowLevelPolicyError); if (unlikely(!__pyx_t_11)) __PYX_ERR(10, 44, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(10, 44, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Unsupported_default_value, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(10, 44, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_8 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
          assert(__pyx_t_10);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
          __pyx_t_8 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_13};
          __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 44, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_3);
        }
        __Pyx_Raise(__pyx_t_3, 0, 0, __pyx_v_e);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __PYX_ERR(10, 44, __pyx_L14_error)
      }

      /* "setools/policyrep/default.pxi":43
 *         try:
 *             return cls(default_map[range_])
 *         except KeyError as e:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError(f"Unsupported default value: {e}") from e
 * 
*/
      /*finally:*/ {
        __pyx_L14_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21);
          if ( unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __pyx_t_9 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
          __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
          __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15;
          goto __pyx_L5_except_error;
        }
      }
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/default.pxi":41
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls(default_map[range_])
 *         except KeyError as e:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    goto __pyx_L0;
  }

  /* "setools/policyrep/default.pxi":31
 *     glblub = sepol.DEFAULT_GLBLUB
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("setools.policyrep.DefaultValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_default_map);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":55
 *     low_high = 3
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17DefaultRangeValue_1from_default_range(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_17DefaultRangeValue_1from_default_range = {"from_default_range", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17DefaultRangeValue_1from_default_range, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_17DefaultRangeValue_1from_default_range(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_cls = 0;
  PyObject *__pyx_v_range_ = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_default_range (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cls,&__pyx_mstate_global->__pyx_n_u_range,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 55, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 55, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 55, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "from_default_range", 0) < (0)) __PYX_ERR(10, 55, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("from_default_range", 1, 2, 2, i); __PYX_ERR(10, 55, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 55, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 55, __pyx_L3_error)
    }
    __pyx_v_cls = values[0];
    __pyx_v_range_ = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("from_default_range", 1, 2, 2, __pyx_nargs); __PYX_ERR(10, 55, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.DefaultRangeValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_17DefaultRangeValue_from_default_range(__pyx_self, __pyx_v_cls, __pyx_v_range_);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_17DefaultRangeValue_from_default_range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_range_) {
  PyObject *__pyx_v_default_map = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_e = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  char const *__pyx_t_16;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("from_default_range", 0);

  /* "setools/policyrep/default.pxi":57
 *     @classmethod
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: 3,
*/
  __pyx_t_1 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_SOURCE_LOW); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(10, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":58
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: 3,
 *                        sepol.DEFAULT_TARGET_LOW: 1,
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_SOURCE_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_int_2) < (0)) __PYX_ERR(10, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":59
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: 3,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_LOW: 1,
 *                        sepol.DEFAULT_TARGET_HIGH: 2,
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_SOURCE_LOW_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(10, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":60
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: 3,
 *                        sepol.DEFAULT_TARGET_LOW: 1,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_HIGH: 2,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: 3,
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_TARGET_LOW); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(10, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":61
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: 3,
 *                        sepol.DEFAULT_TARGET_LOW: 1,
 *                        sepol.DEFAULT_TARGET_HIGH: 2,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: 3,
 *                        sepol.DEFAULT_GLBLUB: None}
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_TARGET_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_int_2) < (0)) __PYX_ERR(10, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":62
 *                        sepol.DEFAULT_TARGET_LOW: 1,
 *                        sepol.DEFAULT_TARGET_HIGH: 2,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: 3,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_GLBLUB: None}
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_TARGET_LOW_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(10, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":63
 *                        sepol.DEFAULT_TARGET_HIGH: 2,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: 3,
 *                        sepol.DEFAULT_GLBLUB: None}             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_GLBLUB); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, Py_None) < (0)) __PYX_ERR(10, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_default_map = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/default.pxi":65
 *                        sepol.DEFAULT_GLBLUB: None}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             value = default_map[range_]
 *             return None if value is None else cls(value)
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/default.pxi":66
 * 
 *         try:
 *             value = default_map[range_]             # <<<<<<<<<<<<<<
 *             return None if value is None else cls(value)
 *         except KeyError as e:
*/
      __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_default_map, __pyx_v_range_); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 66, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_value = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "setools/policyrep/default.pxi":67
 *         try:
 *             value = default_map[range_]
 *             return None if value is None else cls(value)             # <<<<<<<<<<<<<<
 *         except KeyError as e:
 *             raise LowLevelPolicyError(f"Unsupported default_range value: {e}") from e
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_6 = (__pyx_v_value == Py_None);
      if (__pyx_t_6) {
        __Pyx_INCREF(Py_None);
        __pyx_t_1 = Py_None;
      } else {
        __pyx_t_7 = NULL;
        __Pyx_INCREF(__pyx_v_cls);
        __pyx_t_8 = __pyx_v_cls; 
        __pyx_t_9 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          assert(__pyx_t_7);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
          __pyx_t_9 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_value};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 67, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_t_1 = __pyx_t_2;
        __pyx_t_2 = 0;
      }
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/default.pxi":65
 *                        sepol.DEFAULT_GLBLUB: None}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             value = default_map[range_]
 *             return None if value is None else cls(value)
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "setools/policyrep/default.pxi":68
 *             value = default_map[range_]
 *             return None if value is None else cls(value)
 *         except KeyError as e:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError(f"Unsupported default_range value: {e}") from e
 * 
*/
    __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_10) {
      __Pyx_AddTraceback("setools.policyrep.DefaultRangeValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_8) < 0) __PYX_ERR(10, 68, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_v_e = __pyx_t_2;
      /*try:*/ {

        /* "setools/policyrep/default.pxi":69
 *             return None if value is None else cls(value)
 *         except KeyError as e:
 *             raise LowLevelPolicyError(f"Unsupported default_range value: {e}") from e             # <<<<<<<<<<<<<<
 * 
 * 
*/
        __pyx_t_11 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_LowLevelPolicyError); if (unlikely(!__pyx_t_12)) __PYX_ERR(10, 69, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(10, 69, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_14 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Unsupported_default_range_value, __pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(10, 69, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_9 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12);
          assert(__pyx_t_11);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
          __pyx_t_9 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_14};
          __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 69, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_Raise(__pyx_t_7, 0, 0, __pyx_v_e);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __PYX_ERR(10, 69, __pyx_L14_error)
      }

      /* "setools/policyrep/default.pxi":68
 *             value = default_map[range_]
 *             return None if value is None else cls(value)
 *         except KeyError as e:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError(f"Unsupported default_range value: {e}") from e
 * 
*/
      /*finally:*/ {
        __pyx_L14_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
          if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_22);
          __pyx_t_10 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_22);
          __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19);
          __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
          __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16;
          goto __pyx_L5_except_error;
        }
      }
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/default.pxi":65
 *                        sepol.DEFAULT_GLBLUB: None}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             value = default_map[range_]
 *             return None if value is None else cls(value)
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
  }

  /* "setools/policyrep/default.pxi":55
 *     low_high = 3
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("setools.policyrep.DefaultRangeValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_default_map);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":87
 *     # attribute, as it collides with CPython code
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Default factory(SELinuxPolicy policy, ObjClass tclass, user, role, type_, range_):
 *         """Factory function for Default objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Default *__pyx_f_7setools_9policyrep_7Default_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, PyObject *__pyx_v_user, PyObject *__pyx_v_role, PyObject *__pyx_v_type_, PyObject *__pyx_v_range_) {
  struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_obj = 0;
  struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_objr = 0;
  struct __pyx_obj_7setools_9policyrep_Default *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/default.pxi":94
 *             DefaultRange objr
 * 
 *         if user:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_user); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(10, 94, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/default.pxi":95
 * 
 *         if user:
 *             obj = Default()             # <<<<<<<<<<<<<<
 *             obj.policy = policy
 *             obj.tclass = tclass
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Default, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 95, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
    }
    __pyx_v_obj = ((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/default.pxi":96
 *         if user:
 *             obj = Default()
 *             obj.policy = policy             # <<<<<<<<<<<<<<
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_user
*/
    __Pyx_INCREF((PyObject *)__pyx_v_policy);
    __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
    __Pyx_GOTREF((PyObject *)__pyx_v_obj->__pyx_base.policy);
    __Pyx_DECREF((PyObject *)__pyx_v_obj->__pyx_base.policy);
    __pyx_v_obj->__pyx_base.policy = __pyx_v_policy;

    /* "setools/policyrep/default.pxi":97
 *             obj = Default()
 *             obj.policy = policy
 *             obj.tclass = tclass             # <<<<<<<<<<<<<<
 *             obj.ruletype = DefaultRuletype.default_user
 *             obj._default = DefaultValue(user)
*/
    __Pyx_INCREF((PyObject *)__pyx_v_tclass);
    __Pyx_GIVEREF((PyObject *)__pyx_v_tclass);
    __Pyx_GOTREF((PyObject *)__pyx_v_obj->tclass);
    __Pyx_DECREF((PyObject *)__pyx_v_obj->tclass);
    __pyx_v_obj->tclass = __pyx_v_tclass;

    /* "setools/policyrep/default.pxi":98
 *             obj.policy = policy
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_user             # <<<<<<<<<<<<<<
 *             obj._default = DefaultValue(user)
 *             return obj
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DefaultRuletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_user); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_obj->ruletype);
    __Pyx_DECREF(__pyx_v_obj->ruletype);
    __pyx_v_obj->ruletype = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":99
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_user
 *             obj._default = DefaultValue(user)             # <<<<<<<<<<<<<<
 *             return obj
 * 
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DefaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_user};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 99, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_obj->_default);
    __Pyx_DECREF(__pyx_v_obj->_default);
    __pyx_v_obj->_default = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":100
 *             obj.ruletype = DefaultRuletype.default_user
 *             obj._default = DefaultValue(user)
 *             return obj             # <<<<<<<<<<<<<<
 * 
 *         if role:
*/
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_obj);
    __pyx_r = __pyx_v_obj;
    goto __pyx_L0;

    /* "setools/policyrep/default.pxi":94
 *             DefaultRange objr
 * 
 *         if user:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
*/
  }

  /* "setools/policyrep/default.pxi":102
 *             return obj
 * 
 *         if role:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_role); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(10, 102, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/default.pxi":103
 * 
 *         if role:
 *             obj = Default()             # <<<<<<<<<<<<<<
 *             obj.policy = policy
 *             obj.tclass = tclass
*/
    __pyx_t_5 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Default, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 103, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_3);
    }
    __pyx_v_obj = ((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":104
 *         if role:
 *             obj = Default()
 *             obj.policy = policy             # <<<<<<<<<<<<<<
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_role
*/
    __Pyx_INCREF((PyObject *)__pyx_v_policy);
    __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
    __Pyx_GOTREF((PyObject *)__pyx_v_obj->__pyx_base.policy);
    __Pyx_DECREF((PyObject *)__pyx_v_obj->__pyx_base.policy);
    __pyx_v_obj->__pyx_base.policy = __pyx_v_policy;

    /* "setools/policyrep/default.pxi":105
 *             obj = Default()
 *             obj.policy = policy
 *             obj.tclass = tclass             # <<<<<<<<<<<<<<
 *             obj.ruletype = DefaultRuletype.default_role
 *             obj._default = DefaultValue(role)
*/
    __Pyx_INCREF((PyObject *)__pyx_v_tclass);
    __Pyx_GIVEREF((PyObject *)__pyx_v_tclass);
    __Pyx_GOTREF((PyObject *)__pyx_v_obj->tclass);
    __Pyx_DECREF((PyObject *)__pyx_v_obj->tclass);
    __pyx_v_obj->tclass = __pyx_v_tclass;

    /* "setools/policyrep/default.pxi":106
 *             obj.policy = policy
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_role             # <<<<<<<<<<<<<<
 *             obj._default = DefaultValue(role)
 *             return obj
*/
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DefaultRuletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_default_role); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GIVEREF(__pyx_t_5);
    __Pyx_GOTREF(__pyx_v_obj->ruletype);
    __Pyx_DECREF(__pyx_v_obj->ruletype);
    __pyx_v_obj->ruletype = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "setools/policyrep/default.pxi":107
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_role
 *             obj._default = DefaultValue(role)             # <<<<<<<<<<<<<<
 *             return obj
 * 
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DefaultValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_role};
      __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 107, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_GIVEREF(__pyx_t_5);
    __Pyx_GOTREF(__pyx_v_obj->_default);
    __Pyx_DECREF(__pyx_v_obj->_default);
    __pyx_v_obj->_default = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "setools/policyrep/default.pxi":108
 *             obj.ruletype = DefaultRuletype.default_role
 *             obj._default = DefaultValue(role)
 *             return obj             # <<<<<<<<<<<<<<
 * 
 *         if type_:
*/
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_obj);
    __pyx_r = __pyx_v_obj;
    goto __pyx_L0;

    /* "setools/policyrep/default.pxi":102
 *             return obj
 * 
 *         if role:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
*/
  }

  /* "setools/policyrep/default.pxi":110
 *             return obj
 * 
 *         if type_:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_type_); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(10, 110, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/default.pxi":111
 * 
 *         if type_:
 *             obj = Default()             # <<<<<<<<<<<<<<
 *             obj.policy = policy
 *             obj.tclass = tclass
*/
    __pyx_t_2 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Default, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 111, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_5);
    }
    __pyx_v_obj = ((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "setools/policyrep/default.pxi":112
 *         if type_:
 *             obj = Default()
 *             obj.policy = policy             # <<<<<<<<<<<<<<
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_type
*/
    __Pyx_INCREF((PyObject *)__pyx_v_policy);
    __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
    __Pyx_GOTREF((PyObject *)__pyx_v_obj->__pyx_base.policy);
    __Pyx_DECREF((PyObject *)__pyx_v_obj->__pyx_base.policy);
    __pyx_v_obj->__pyx_base.policy = __pyx_v_policy;

    /* "setools/policyrep/default.pxi":113
 *             obj = Default()
 *             obj.policy = policy
 *             obj.tclass = tclass             # <<<<<<<<<<<<<<
 *             obj.ruletype = DefaultRuletype.default_type
 *             obj._default = DefaultValue(type_)
*/
    __Pyx_INCREF((PyObject *)__pyx_v_tclass);
    __Pyx_GIVEREF((PyObject *)__pyx_v_tclass);
    __Pyx_GOTREF((PyObject *)__pyx_v_obj->tclass);
    __Pyx_DECREF((PyObject *)__pyx_v_obj->tclass);
    __pyx_v_obj->tclass = __pyx_v_tclass;

    /* "setools/policyrep/default.pxi":114
 *             obj.policy = policy
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_type             # <<<<<<<<<<<<<<
 *             obj._default = DefaultValue(type_)
 *             return obj
*/
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DefaultRuletype); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_default_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_obj->ruletype);
    __Pyx_DECREF(__pyx_v_obj->ruletype);
    __pyx_v_obj->ruletype = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "setools/policyrep/default.pxi":115
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_type
 *             obj._default = DefaultValue(type_)             # <<<<<<<<<<<<<<
 *             return obj
 * 
*/
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DefaultValue); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_type_};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 115, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_obj->_default);
    __Pyx_DECREF(__pyx_v_obj->_default);
    __pyx_v_obj->_default = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "setools/policyrep/default.pxi":116
 *             obj.ruletype = DefaultRuletype.default_type
 *             obj._default = DefaultValue(type_)
 *             return obj             # <<<<<<<<<<<<<<
 * 
 *         if range_:
*/
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_obj);
    __pyx_r = __pyx_v_obj;
    goto __pyx_L0;

    /* "setools/policyrep/default.pxi":110
 *             return obj
 * 
 *         if type_:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
*/
  }

  /* "setools/policyrep/default.pxi":118
 *             return obj
 * 
 *         if range_:             # <<<<<<<<<<<<<<
 *             objr = DefaultRange()
 *             objr.policy = policy
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_range_); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(10, 118, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/default.pxi":119
 * 
 *         if range_:
 *             objr = DefaultRange()             # <<<<<<<<<<<<<<
 *             objr.policy = policy
 *             objr.ruletype = DefaultRuletype.default_range
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_DefaultRange, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 119, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
    }
    __pyx_v_objr = ((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/default.pxi":120
 *         if range_:
 *             objr = DefaultRange()
 *             objr.policy = policy             # <<<<<<<<<<<<<<
 *             objr.ruletype = DefaultRuletype.default_range
 *             objr.tclass = tclass
*/
    __Pyx_INCREF((PyObject *)__pyx_v_policy);
    __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
    __Pyx_GOTREF((PyObject *)__pyx_v_objr->__pyx_base.__pyx_base.policy);
    __Pyx_DECREF((PyObject *)__pyx_v_objr->__pyx_base.__pyx_base.policy);
    __pyx_v_objr->__pyx_base.__pyx_base.policy = __pyx_v_policy;

    /* "setools/policyrep/default.pxi":121
 *             objr = DefaultRange()
 *             objr.policy = policy
 *             objr.ruletype = DefaultRuletype.default_range             # <<<<<<<<<<<<<<
 *             objr.tclass = tclass
 *             objr._default = DefaultValue.from_default_range(range_)
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DefaultRuletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_range); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_objr->__pyx_base.ruletype);
    __Pyx_DECREF(__pyx_v_objr->__pyx_base.ruletype);
    __pyx_v_objr->__pyx_base.ruletype = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":122
 *             objr.policy = policy
 *             objr.ruletype = DefaultRuletype.default_range
 *             objr.tclass = tclass             # <<<<<<<<<<<<<<
 *             objr._default = DefaultValue.from_default_range(range_)
 *             objr.default_range = DefaultRangeValue.from_default_range(range_)
*/
    __Pyx_INCREF((PyObject *)__pyx_v_tclass);
    __Pyx_GIVEREF((PyObject *)__pyx_v_tclass);
    __Pyx_GOTREF((PyObject *)__pyx_v_objr->__pyx_base.tclass);
    __Pyx_DECREF((PyObject *)__pyx_v_objr->__pyx_base.tclass);
    __pyx_v_objr->__pyx_base.tclass = __pyx_v_tclass;

    /* "setools/policyrep/default.pxi":123
 *             objr.ruletype = DefaultRuletype.default_range
 *             objr.tclass = tclass
 *             objr._default = DefaultValue.from_default_range(range_)             # <<<<<<<<<<<<<<
 *             objr.default_range = DefaultRangeValue.from_default_range(range_)
 *             return objr
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DefaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_from_default_range); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_range_};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 123, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_objr->__pyx_base._default);
    __Pyx_DECREF(__pyx_v_objr->__pyx_base._default);
    __pyx_v_objr->__pyx_base._default = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":124
 *             objr.tclass = tclass
 *             objr._default = DefaultValue.from_default_range(range_)
 *             objr.default_range = DefaultRangeValue.from_default_range(range_)             # <<<<<<<<<<<<<<
 *             return objr
 * 
*/
    __pyx_t_6 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DefaultRangeValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_from_default_range); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_6);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_range_};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_objr->default_range);
    __Pyx_DECREF(__pyx_v_objr->default_range);
    __pyx_v_objr->default_range = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":125
 *             objr._default = DefaultValue.from_default_range(range_)
 *             objr.default_range = DefaultRangeValue.from_default_range(range_)
 *             return objr             # <<<<<<<<<<<<<<
 * 
 *         raise ValueError("At least one of user, role, type_, or range_ must be specified.")
*/
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_objr);
    __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_objr);
    goto __pyx_L0;

    /* "setools/policyrep/default.pxi":118
 *             return obj
 * 
 *         if range_:             # <<<<<<<<<<<<<<
 *             objr = DefaultRange()
 *             objr.policy = policy
*/
  }

  /* "setools/policyrep/default.pxi":127
 *             return objr
 * 
 *         raise ValueError("At least one of user, role, type_, or range_ must be specified.")             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
*/
  __pyx_t_5 = NULL;
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_At_least_one_of_user_role_type};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __Pyx_Raise(__pyx_t_3, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __PYX_ERR(10, 127, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":87
 *     # attribute, as it collides with CPython code
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Default factory(SELinuxPolicy policy, ObjClass tclass, user, role, type_, range_):
 *         """Factory function for Default objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Default.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_obj);
  __Pyx_XDECREF((PyObject *)__pyx_v_objr);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":129
 *         raise ValueError("At least one of user, role, type_, or range_ must be specified.")
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default___eq__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Default___eq__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/default.pxi":130
 * 
 *     def __eq__(self, other):
 *         return self.ruletype == other.ruletype \             # <<<<<<<<<<<<<<
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default
*/
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/default.pxi":131
 *     def __eq__(self, other):
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \             # <<<<<<<<<<<<<<
 *                 and self.default == other.default
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_ruletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->ruletype, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 130, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(10, 130, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/default.pxi":132
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_tclass); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self->tclass), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(10, 131, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_INCREF(__pyx_t_5);
  __pyx_t_1 = __pyx_t_5;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":129
 *         raise ValueError("At least one of user, role, type_, or range_ must be specified.")
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Default.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":134
 *                 and self.default == other.default
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.tclass}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_7Default_3__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_7Default_3__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_2__hash__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_7Default_2__hash__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[3];
  PyObject *__pyx_t_4 = NULL;
  Py_hash_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/default.pxi":135
 * 
 *     def __hash__(self):
 *         return hash(f"{self.ruletype}|{self.tclass}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_t_1;
  __pyx_t_3[1] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_3[2] = __pyx_t_2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = PyObject_Hash(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_hash_t)-1))) __PYX_ERR(10, 135, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":134
 *                 and self.default == other.default
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.tclass}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Default.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":137
 *         return hash(f"{self.ruletype}|{self.tclass}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_4__lt__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Default_4__lt__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/default.pxi":139
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":137
 *         return hash(f"{self.ruletype}|{self.tclass}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Default.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":141
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         return self._default
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_7default_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_7default___get__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Default_7default___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/default.pxi":143
 *     @property
 *     def default(self):
 *         return self._default             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_default);
  __pyx_r = __pyx_v_self->_default;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":141
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         return self._default
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":145
 *         return self._default
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.tclass} {self.default};"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_7statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Default_7statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Default_7statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Default_7statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_6statement(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Default_6statement(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[6];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/default.pxi":146
 * 
 *     def statement(self):
 *         return f"{self.ruletype} {self.tclass} {self.default};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_3, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5[0] = __pyx_t_1;
  __pyx_t_5[1] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_5[2] = __pyx_t_2;
  __pyx_t_5[3] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_5[4] = __pyx_t_4;
  __pyx_t_5[5] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 6, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":145
 *         return self._default
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.tclass} {self.default};"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Default.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":80
 * 
 *     cdef:
 *         readonly object ruletype             # <<<<<<<<<<<<<<
 *         readonly ObjClass tclass
 *         object _default
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_8ruletype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_8ruletype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_8ruletype___get__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Default_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __pyx_r = __pyx_v_self->ruletype;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":81
 *     cdef:
 *         readonly object ruletype
 *         readonly ObjClass tclass             # <<<<<<<<<<<<<<
 *         object _default
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_6tclass_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Default_6tclass___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->tclass);
  __pyx_r = ((PyObject *)__pyx_v_self->tclass);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Default_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Default_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Default_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Default_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._default, self.key, self.policy, self.ruletype, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_default);
  __Pyx_GIVEREF(__pyx_v_self->_default);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_default) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __Pyx_GIVEREF(__pyx_v_self->ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->tclass)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._default, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._default, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._default is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._default, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._default is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Default, (type(self), 0x685e83e, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_default != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->ruletype != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->tclass) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._default is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Default, (type(self), 0x685e83e, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._default is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Default, (type(self), 0x685e83e, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Default, (type(self), 0x685e83e, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Default); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_109439038);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_109439038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_109439038) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._default is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Default, (type(self), 0x685e83e, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Default, (type(self), 0x685e83e, None), state
 *     else:
 *         return __pyx_unpickle_Default, (type(self), 0x685e83e, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Default__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Default); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_109439038);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_109439038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_109439038) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Default.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Default, (type(self), 0x685e83e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Default__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Default_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Default_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Default_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Default.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Default_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Default, (type(self), 0x685e83e, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Default__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Default__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Default, (type(self), 0x685e83e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Default__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Default.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":155
 *     cdef readonly object default_range
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange___eq__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange___eq__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/default.pxi":156
 * 
 *     def __eq__(self, other):
 *         return self.ruletype == other.ruletype \             # <<<<<<<<<<<<<<
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default \
*/
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/default.pxi":157
 *     def __eq__(self, other):
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \             # <<<<<<<<<<<<<<
 *                 and self.default == other.default \
 *                 and self.default_range == other.default_range
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_ruletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->__pyx_base.ruletype, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 156, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(10, 156, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/default.pxi":158
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default \             # <<<<<<<<<<<<<<
 *                 and self.default_range == other.default_range
 * 
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_tclass); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 157, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(10, 157, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/default.pxi":159
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default \
 *                 and self.default_range == other.default_range             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/default.pxi":158
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default \             # <<<<<<<<<<<<<<
 *                 and self.default_range == other.default_range
 * 
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 158, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(10, 158, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_1 = __pyx_t_5;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/default.pxi":159
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default \
 *                 and self.default_range == other.default_range             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_default_range); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->default_range, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 159, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_1 = __pyx_t_3;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":155
 *     cdef readonly object default_range
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":161
 *                 and self.default_range == other.default_range
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.tclass}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_12DefaultRange_3__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_12DefaultRange_3__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_2__hash__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_12DefaultRange_2__hash__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[3];
  PyObject *__pyx_t_4 = NULL;
  Py_hash_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/default.pxi":162
 * 
 *     def __hash__(self):
 *         return hash(f"{self.ruletype}|{self.tclass}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_t_1;
  __pyx_t_3[1] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_3[2] = __pyx_t_2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = PyObject_Hash(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_hash_t)-1))) __PYX_ERR(10, 162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":161
 *                 and self.default_range == other.default_range
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.tclass}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":164
 *         return hash(f"{self.ruletype}|{self.tclass}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_4__lt__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_4__lt__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/default.pxi":166
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 166, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":164
 *         return hash(f"{self.ruletype}|{self.tclass}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":168
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if self.default_range:
 *             return f"{self.ruletype} {self.tclass} {self.default} {self.default_range};"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_7statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12DefaultRange_7statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12DefaultRange_7statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_7statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_6statement(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_6statement(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6[8];
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8[6];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/default.pxi":169
 * 
 *     def statement(self):
 *         if self.default_range:             # <<<<<<<<<<<<<<
 *             return f"{self.ruletype} {self.tclass} {self.default} {self.default_range};"
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->default_range); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(10, 169, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/default.pxi":170
 *     def statement(self):
 *         if self.default_range:
 *             return f"{self.ruletype} {self.tclass} {self.default} {self.default_range};"             # <<<<<<<<<<<<<<
 *         else:
 *             return f"{self.ruletype} {self.tclass} {self.default};"
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->default_range, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6[0] = __pyx_t_2;
    __pyx_t_6[1] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_6[2] = __pyx_t_3;
    __pyx_t_6[3] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_6[4] = __pyx_t_5;
    __pyx_t_6[5] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_6[6] = __pyx_t_4;
    __pyx_t_6[7] = __pyx_mstate_global->__pyx_kp_u__2;
    __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_6, 8, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 1 * 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
    if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/default.pxi":169
 * 
 *     def statement(self):
 *         if self.default_range:             # <<<<<<<<<<<<<<
 *             return f"{self.ruletype} {self.tclass} {self.default} {self.default_range};"
 *         else:
*/
  }

  /* "setools/policyrep/default.pxi":172
 *             return f"{self.ruletype} {self.tclass} {self.default} {self.default_range};"
 *         else:
 *             return f"{self.ruletype} {self.tclass} {self.default};"             # <<<<<<<<<<<<<<
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_8[0] = __pyx_t_7;
    __pyx_t_8[1] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_8[2] = __pyx_t_4;
    __pyx_t_8[3] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_8[4] = __pyx_t_3;
    __pyx_t_8[5] = __pyx_mstate_global->__pyx_kp_u__2;
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_8, 6, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
    if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/default.pxi":168
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if self.default_range:
 *             return f"{self.ruletype} {self.tclass} {self.default} {self.default_range};"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":153
 *     """A default_range statement."""
 * 
 *     cdef readonly object default_range             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_13default_range_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_13default_range_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_13default_range___get__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_13default_range___get__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->default_range);
  __pyx_r = __pyx_v_self->default_range;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12DefaultRange_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12DefaultRange_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._default, self.default_range, self.key, self.policy, self.ruletype, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->__pyx_base._default);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base._default);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->__pyx_base._default) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->default_range);
  __Pyx_GIVEREF(__pyx_v_self->default_range);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->default_range) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->__pyx_base.ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->__pyx_base.tclass)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._default, self.default_range, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._default, self.default_range, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._default is not None or self.default_range is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._default, self.default_range, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._default is not None or self.default_range is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xe3c0426, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->__pyx_base._default != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->default_range != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.tclass) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._default is not None or self.default_range is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xe3c0426, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._default is not None or self.default_range is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xe3c0426, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xe3c0426, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_DefaultRange); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238814246);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238814246);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_238814246) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._default is not None or self.default_range is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xe3c0426, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xe3c0426, None), state
 *     else:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xe3c0426, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_DefaultRange__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_DefaultRange); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238814246);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238814246);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_238814246) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xe3c0426, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_DefaultRange__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12DefaultRange_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12DefaultRange_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xe3c0426, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_DefaultRange__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_DefaultRange__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xe3c0426, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_DefaultRange__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/filecontexts.pxi":24
 *         readonly str path
 * 
 *     def __cinit__(self, policy: SELinuxPolicy | None, fc_path: str | None = None):             # <<<<<<<<<<<<<<
 *         """
 *         Parameter:
*/

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_12FileContexts_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_7setools_9policyrep_12FileContexts_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy = 0;
  PyObject *__pyx_v_fc_path = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_policy,&__pyx_mstate_global->__pyx_n_u_fc_path,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(11, 24, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(11, 24, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(11, 24, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < (0)) __PYX_ERR(11, 24, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject*)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, i); __PYX_ERR(11, 24, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(11, 24, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(11, 24, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject*)Py_None));
    }
    __pyx_v_policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)values[0]);
    __pyx_v_fc_path = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, __pyx_nargs); __PYX_ERR(11, 24, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.FileContexts.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_policy), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, 1, "policy", 0))) __PYX_ERR(11, 24, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fc_path), (&PyUnicode_Type), 1, "fc_path", 2))) __PYX_ERR(11, 24, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_12FileContexts___cinit__(((struct __pyx_obj_7setools_9policyrep_FileContexts *)__pyx_v_self), __pyx_v_policy, __pyx_v_fc_path);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7setools_9policyrep_12FileContexts___cinit__(struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self, struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_fc_path) {
  struct selinux_opt __pyx_v_selabel_opt;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  char *__pyx_t_7;
  PyObject *__pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "setools/policyrep/filecontexts.pxi":34
 * 
 *         cdef selinux.selinux_opt selabel_opt
 *         if fc_path:             # <<<<<<<<<<<<<<
 *             selabel_opt.type = selinux.SELABEL_OPT_PATH
 *             selabel_opt.value = fc_path
*/
  if (__pyx_v_fc_path == Py_None) __pyx_t_1 = 0;
  else
  {
    Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_fc_path);
    if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(11, 34, __pyx_L1_error)
    __pyx_t_1 = (__pyx_temp != 0);
  }

  if (__pyx_t_1) {

    /* "setools/policyrep/filecontexts.pxi":35
 *         cdef selinux.selinux_opt selabel_opt
 *         if fc_path:
 *             selabel_opt.type = selinux.SELABEL_OPT_PATH             # <<<<<<<<<<<<<<
 *             selabel_opt.value = fc_path
 *         else:
*/
    __pyx_v_selabel_opt.type = SELABEL_OPT_PATH;

    /* "setools/policyrep/filecontexts.pxi":36
 *         if fc_path:
 *             selabel_opt.type = selinux.SELABEL_OPT_PATH
 *             selabel_opt.value = fc_path             # <<<<<<<<<<<<<<
 *         else:
 *             selabel_opt.type = selinux.SELABEL_OPT_UNUSED
*/
    __pyx_t_2 = __Pyx_PyObject_AsString(__pyx_v_fc_path); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(11, 36, __pyx_L1_error)
    __pyx_v_selabel_opt.value = __pyx_t_2;

    /* "setools/policyrep/filecontexts.pxi":34
 * 
 *         cdef selinux.selinux_opt selabel_opt
 *         if fc_path:             # <<<<<<<<<<<<<<
 *             selabel_opt.type = selinux.SELABEL_OPT_PATH
 *             selabel_opt.value = fc_path
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/filecontexts.pxi":38
 *             selabel_opt.value = fc_path
 *         else:
 *             selabel_opt.type = selinux.SELABEL_OPT_UNUSED             # <<<<<<<<<<<<<<
 * 
 *         self.handle = selinux.selabel_open(selinux.SELABEL_CTX_FILE, &selabel_opt, 1)
*/
  /*else*/ {
    __pyx_v_selabel_opt.type = SELABEL_OPT_UNUSED;
  }
  __pyx_L3:;

  /* "setools/policyrep/filecontexts.pxi":40
 *             selabel_opt.type = selinux.SELABEL_OPT_UNUSED
 * 
 *         self.handle = selinux.selabel_open(selinux.SELABEL_CTX_FILE, &selabel_opt, 1)             # <<<<<<<<<<<<<<
 *         if self.handle == NULL:
 *             if errno == ENOMEM:
*/
  __pyx_v_self->handle = selabel_open(SELABEL_CTX_FILE, (&__pyx_v_selabel_opt), 1);

  /* "setools/policyrep/filecontexts.pxi":41
 * 
 *         self.handle = selinux.selabel_open(selinux.SELABEL_CTX_FILE, &selabel_opt, 1)
 *         if self.handle == NULL:             # <<<<<<<<<<<<<<
 *             if errno == ENOMEM:
 *                 PyErr_NoMemory()
*/
  __pyx_t_1 = (__pyx_v_self->handle == NULL);
  if (__pyx_t_1) {

    /* "setools/policyrep/filecontexts.pxi":42
 *         self.handle = selinux.selabel_open(selinux.SELABEL_CTX_FILE, &selabel_opt, 1)
 *         if self.handle == NULL:
 *             if errno == ENOMEM:             # <<<<<<<<<<<<<<
 *                 PyErr_NoMemory()
 *             else:
*/
    __pyx_t_1 = (errno == ENOMEM);
    if (__pyx_t_1) {

      /* "setools/policyrep/filecontexts.pxi":43
 *         if self.handle == NULL:
 *             if errno == ENOMEM:
 *                 PyErr_NoMemory()             # <<<<<<<<<<<<<<
 *             else:
 *                 PyErr_SetFromErrnoWithFilename(OSError, fc_path)
*/
      __pyx_t_4 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyErr_NoMemory); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 43, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
        assert(__pyx_t_4);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
        __pyx_t_6 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
        __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 43, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "setools/policyrep/filecontexts.pxi":42
 *         self.handle = selinux.selabel_open(selinux.SELABEL_CTX_FILE, &selabel_opt, 1)
 *         if self.handle == NULL:
 *             if errno == ENOMEM:             # <<<<<<<<<<<<<<
 *                 PyErr_NoMemory()
 *             else:
*/
      goto __pyx_L5;
    }

    /* "setools/policyrep/filecontexts.pxi":45
 *                 PyErr_NoMemory()
 *             else:
 *                 PyErr_SetFromErrnoWithFilename(OSError, fc_path)             # <<<<<<<<<<<<<<
 * 
 *         self.path = fc_path
*/
    /*else*/ {
      __pyx_t_7 = __Pyx_PyObject_AsWritableString(__pyx_v_fc_path); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(11, 45, __pyx_L1_error)
      __pyx_t_8 = PyErr_SetFromErrnoWithFilename(((PyObject *)(((PyTypeObject*)PyExc_OSError))), __pyx_t_7); if (unlikely(__pyx_t_8 == ((void *)NULL))) __PYX_ERR(11, 45, __pyx_L1_error)
    }
    __pyx_L5:;

    /* "setools/policyrep/filecontexts.pxi":41
 * 
 *         self.handle = selinux.selabel_open(selinux.SELABEL_CTX_FILE, &selabel_opt, 1)
 *         if self.handle == NULL:             # <<<<<<<<<<<<<<
 *             if errno == ENOMEM:
 *                 PyErr_NoMemory()
*/
  }

  /* "setools/policyrep/filecontexts.pxi":47
 *                 PyErr_SetFromErrnoWithFilename(OSError, fc_path)
 * 
 *         self.path = fc_path             # <<<<<<<<<<<<<<
 *         self.policy = policy
 * 
*/
  __Pyx_INCREF(__pyx_v_fc_path);
  __Pyx_GIVEREF(__pyx_v_fc_path);
  __Pyx_GOTREF(__pyx_v_self->path);
  __Pyx_DECREF(__pyx_v_self->path);
  __pyx_v_self->path = __pyx_v_fc_path;

  /* "setools/policyrep/filecontexts.pxi":48
 * 
 *         self.path = fc_path
 *         self.policy = policy             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->policy);
  __Pyx_DECREF((PyObject *)__pyx_v_self->policy);
  __pyx_v_self->policy = __pyx_v_policy;

  /* "setools/policyrep/filecontexts.pxi":24
 *         readonly str path
 * 
 *     def __cinit__(self, policy: SELinuxPolicy | None, fc_path: str | None = None):             # <<<<<<<<<<<<<<
 *         """
 *         Parameter:
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.FileContexts.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/filecontexts.pxi":50
 *         self.policy = policy
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self.handle != NULL:
 *             selinux.selabel_close(self.handle)
*/

/* Python wrapper */
static void __pyx_pw_7setools_9policyrep_12FileContexts_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_7setools_9policyrep_12FileContexts_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_7setools_9policyrep_12FileContexts_2__dealloc__(((struct __pyx_obj_7setools_9policyrep_FileContexts *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_7setools_9policyrep_12FileContexts_2__dealloc__(struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self) {
  int __pyx_t_1;

  /* "setools/policyrep/filecontexts.pxi":51
 * 
 *     def __dealloc__(self):
 *         if self.handle != NULL:             # <<<<<<<<<<<<<<
 *             selinux.selabel_close(self.handle)
 * 
*/
  __pyx_t_1 = (__pyx_v_self->handle != NULL);
  if (__pyx_t_1) {

    /* "setools/policyrep/filecontexts.pxi":52
 *     def __dealloc__(self):
 *         if self.handle != NULL:
 *             selinux.selabel_close(self.handle)             # <<<<<<<<<<<<<<
 * 
 *     def lookup(self, path: str, filetype: FileContextsFiletype = FileContextsFiletype.any):
*/
    selabel_close(__pyx_v_self->handle);

    /* "setools/policyrep/filecontexts.pxi":51
 * 
 *     def __dealloc__(self):
 *         if self.handle != NULL:             # <<<<<<<<<<<<<<
 *             selinux.selabel_close(self.handle)
 * 
*/
  }

  /* "setools/policyrep/filecontexts.pxi":50
 *         self.policy = policy
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self.handle != NULL:
 *             selinux.selabel_close(self.handle)
*/

  /* function exit code */
}

/* "setools/policyrep/filecontexts.pxi":54
 *             selinux.selabel_close(self.handle)
 * 
 *     def lookup(self, path: str, filetype: FileContextsFiletype = FileContextsFiletype.any):             # <<<<<<<<<<<<<<
 *         """Look up a path in the file_contexts."""
 *         cdef char *ctx
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12FileContexts_5lookup(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_12FileContexts_4lookup, "Look up a path in the file_contexts.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_12FileContexts_5lookup = {"lookup", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12FileContexts_5lookup, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_12FileContexts_4lookup};
static PyObject *__pyx_pw_7setools_9policyrep_12FileContexts_5lookup(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_path = 0;
  PyObject *__pyx_v_filetype = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_path,&__pyx_mstate_global->__pyx_n_u_filetype,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(11, 54, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(11, 54, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(11, 54, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup", 0) < (0)) __PYX_ERR(11, 54, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_mstate_global->__pyx_k__15);
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup", 0, 1, 2, i); __PYX_ERR(11, 54, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(11, 54, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(11, 54, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_mstate_global->__pyx_k__15);
    }
    __pyx_v_path = ((PyObject*)values[0]);
    __pyx_v_filetype = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup", 0, 1, 2, __pyx_nargs); __PYX_ERR(11, 54, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.FileContexts.lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_path), (&PyUnicode_Type), 0, "path", 2))) __PYX_ERR(11, 54, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_12FileContexts_4lookup(((struct __pyx_obj_7setools_9policyrep_FileContexts *)__pyx_v_self), __pyx_v_path, __pyx_v_filetype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12FileContexts_4lookup(struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self, PyObject *__pyx_v_path, PyObject *__pyx_v_filetype) {
  char *__pyx_v_ctx;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  char const *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8[5];
  PyObject *__pyx_t_9 = NULL;
  size_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup", 0);

  /* "setools/policyrep/filecontexts.pxi":57
 *         """Look up a path in the file_contexts."""
 *         cdef char *ctx
 *         if selinux.selabel_lookup_raw(self.handle, &ctx, path, filetype.value) < 0:             # <<<<<<<<<<<<<<
 *             if errno == ENOENT:
 *                 raise NoFileContextsMatch(f"\"{path}\" ({filetype}) does not match.")
*/
  __pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_path); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(11, 57, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_filetype, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(11, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = (selabel_lookup_raw(__pyx_v_self->handle, (&__pyx_v_ctx), __pyx_t_1, __pyx_t_3) < 0);
  if (__pyx_t_4) {

    /* "setools/policyrep/filecontexts.pxi":58
 *         cdef char *ctx
 *         if selinux.selabel_lookup_raw(self.handle, &ctx, path, filetype.value) < 0:
 *             if errno == ENOENT:             # <<<<<<<<<<<<<<
 *                 raise NoFileContextsMatch(f"\"{path}\" ({filetype}) does not match.")
 *             else:
*/
    __pyx_t_4 = (errno == ENOENT);
    if (unlikely(__pyx_t_4)) {

      /* "setools/policyrep/filecontexts.pxi":59
 *         if selinux.selabel_lookup_raw(self.handle, &ctx, path, filetype.value) < 0:
 *             if errno == ENOENT:
 *                 raise NoFileContextsMatch(f"\"{path}\" ({filetype}) does not match.")             # <<<<<<<<<<<<<<
 *             else:
 *                 PyErr_SetFromErrno(OSError)
*/
      __pyx_t_5 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_NoFileContextsMatch); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 59, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_v_filetype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 59, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u__16;
      __pyx_t_8[1] = __pyx_v_path;
      __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u__17;
      __pyx_t_8[3] = __pyx_t_7;
      __pyx_t_8[4] = __pyx_mstate_global->__pyx_kp_u_does_not_match;
      __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_8, 5, 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_v_path) + 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 17, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_v_path) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7));
      if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 59, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_10 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        assert(__pyx_t_5);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
        __pyx_t_10 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_9};
        __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 59, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_Raise(__pyx_t_2, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __PYX_ERR(11, 59, __pyx_L1_error)

      /* "setools/policyrep/filecontexts.pxi":58
 *         cdef char *ctx
 *         if selinux.selabel_lookup_raw(self.handle, &ctx, path, filetype.value) < 0:
 *             if errno == ENOENT:             # <<<<<<<<<<<<<<
 *                 raise NoFileContextsMatch(f"\"{path}\" ({filetype}) does not match.")
 *             else:
*/
    }

    /* "setools/policyrep/filecontexts.pxi":61
 *                 raise NoFileContextsMatch(f"\"{path}\" ({filetype}) does not match.")
 *             else:
 *                 PyErr_SetFromErrno(OSError)             # <<<<<<<<<<<<<<
 * 
 *         return self.policy.lookup_context(ctx) if self.policy else ctx
*/
    /*else*/ {
      __pyx_t_6 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyErr_SetFromErrno); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 61, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_9);
        assert(__pyx_t_6);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
        __pyx_t_10 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, ((PyObject *)(((PyTypeObject*)PyExc_OSError)))};
        __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 61, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }

    /* "setools/policyrep/filecontexts.pxi":57
 *         """Look up a path in the file_contexts."""
 *         cdef char *ctx
 *         if selinux.selabel_lookup_raw(self.handle, &ctx, path, filetype.value) < 0:             # <<<<<<<<<<<<<<
 *             if errno == ENOENT:
 *                 raise NoFileContextsMatch(f"\"{path}\" ({filetype}) does not match.")
*/
  }

  /* "setools/policyrep/filecontexts.pxi":63
 *                 PyErr_SetFromErrno(OSError)
 * 
 *         return self.policy.lookup_context(ctx) if self.policy else ctx             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->policy)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(11, 63, __pyx_L1_error)
  if (__pyx_t_4) {
    __pyx_t_6 = ((PyObject *)__pyx_v_self->policy);
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyUnicode_FromString(__pyx_v_ctx); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};
      __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lookup_context, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 63, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
    }
    __pyx_t_2 = __pyx_t_9;
    __pyx_t_9 = 0;
  } else {
    __pyx_t_9 = __Pyx_PyUnicode_FromString(__pyx_v_ctx); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = __pyx_t_9;
    __pyx_t_9 = 0;
  }
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/filecontexts.pxi":54
 *             selinux.selabel_close(self.handle)
 * 
 *     def lookup(self, path: str, filetype: FileContextsFiletype = FileContextsFiletype.any):             # <<<<<<<<<<<<<<
 *         """Look up a path in the file_contexts."""
 *         cdef char *ctx
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.FileContexts.lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/filecontexts.pxi":21
 *         selinux.selabel_handle *handle
 * 
 *         readonly SELinuxPolicy policy             # <<<<<<<<<<<<<<
 *         readonly str path
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12FileContexts_6policy_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12FileContexts_6policy_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12FileContexts_6policy___get__(((struct __pyx_obj_7setools_9policyrep_FileContexts *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12FileContexts_6policy___get__(struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->policy);
  __pyx_r = ((PyObject *)__pyx_v_self->policy);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/filecontexts.pxi":22
 * 
 *         readonly SELinuxPolicy policy
 *         readonly str path             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, policy: SELinuxPolicy | None, fc_path: str | None = None):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12FileContexts_4path_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12FileContexts_4path_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12FileContexts_4path___get__(((struct __pyx_obj_7setools_9policyrep_FileContexts *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12FileContexts_4path___get__(struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->path);
  __pyx_r = __pyx_v_self->path;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12FileContexts_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12FileContexts_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12FileContexts_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12FileContexts_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12FileContexts_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_FileContexts *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12FileContexts_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.FileContexts.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12FileContexts_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12FileContexts_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12FileContexts_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12FileContexts_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.FileContexts.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12FileContexts_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_FileContexts *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12FileContexts_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileContexts *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.FileContexts.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":29
 *         readonly str fs
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline FSUse factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating FSUse objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_f_7setools_9policyrep_5FSUse_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_f = 0;
  struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/fscontext.pxi":32
 *     cdef inline FSUse factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating FSUse objects."""
 *         cdef FSUse f = FSUse.__new__(FSUse)             # <<<<<<<<<<<<<<
 *         f.policy = policy
 *         f.ruletype = FSUseRuletype(symbol.v.behavior)
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_FSUse(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FSUse), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 32, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_f = ((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":33
 *         """Factory function for creating FSUse objects."""
 *         cdef FSUse f = FSUse.__new__(FSUse)
 *         f.policy = policy             # <<<<<<<<<<<<<<
 *         f.ruletype = FSUseRuletype(symbol.v.behavior)
 *         f.fs = intern(symbol.u.name)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_f->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_f->__pyx_base.__pyx_base.policy);
  __pyx_v_f->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/fscontext.pxi":34
 *         cdef FSUse f = FSUse.__new__(FSUse)
 *         f.policy = policy
 *         f.ruletype = FSUseRuletype(symbol.v.behavior)             # <<<<<<<<<<<<<<
 *         f.fs = intern(symbol.u.name)
 *         f.context = Context.factory(policy, symbol.context)
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_FSUseRuletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyLong_From_uint32_t(__pyx_v_symbol->v.behavior); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 34, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_f->ruletype);
  __Pyx_DECREF(__pyx_v_f->ruletype);
  __pyx_v_f->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":35
 *         f.policy = policy
 *         f.ruletype = FSUseRuletype(symbol.v.behavior)
 *         f.fs = intern(symbol.u.name)             # <<<<<<<<<<<<<<
 *         f.context = Context.factory(policy, symbol.context)
 *         return f
*/
  __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_symbol->u.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(12, 35, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_f->fs);
  __Pyx_DECREF(__pyx_v_f->fs);
  __pyx_v_f->fs = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/fscontext.pxi":36
 *         f.ruletype = FSUseRuletype(symbol.v.behavior)
 *         f.fs = intern(symbol.u.name)
 *         f.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return f
 * 
*/
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF((PyObject *)__pyx_v_f->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_f->__pyx_base.context);
  __pyx_v_f->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/fscontext.pxi":37
 *         f.fs = intern(symbol.u.name)
 *         f.context = Context.factory(policy, symbol.context)
 *         return f             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_f);
  __pyx_r = __pyx_v_f;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":29
 *         readonly str fs
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline FSUse factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating FSUse objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.FSUse.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_f);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":39
 *         return f
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.fs}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_5FSUse_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_5FSUse_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse___hash__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_5FSUse___hash__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[3];
  PyObject *__pyx_t_4 = NULL;
  Py_hash_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/fscontext.pxi":40
 * 
 *     def __hash__(self):
 *         return hash(f"{self.ruletype}|{self.fs}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_self->fs); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_t_1;
  __pyx_t_3[1] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_3[2] = __pyx_t_2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = PyObject_Hash(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_hash_t)-1))) __PYX_ERR(12, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":39
 *         return f
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.fs}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.FSUse.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":42
 *         return hash(f"{self.ruletype}|{self.fs}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_2__lt__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_2__lt__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/fscontext.pxi":44
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":42
 *         return hash(f"{self.ruletype}|{self.fs}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.FSUse.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":46
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.fs} {self.context};"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_5FSUse_5statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5FSUse_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_4statement(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_4statement(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[6];
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/fscontext.pxi":47
 * 
 *     def statement(self):
 *         return f"{self.ruletype} {self.fs} {self.context};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_self->fs); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_t_1;
  __pyx_t_4[1] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[2] = __pyx_t_2;
  __pyx_t_4[3] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[4] = __pyx_t_3;
  __pyx_t_4[5] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 6, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":46
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.fs} {self.context};"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.FSUse.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":26
 * 
 *     cdef:
 *         readonly object ruletype             # <<<<<<<<<<<<<<
 *         readonly str fs
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_8ruletype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_8ruletype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_8ruletype___get__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __pyx_r = __pyx_v_self->ruletype;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":27
 *     cdef:
 *         readonly object ruletype
 *         readonly str fs             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_2fs_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_2fs_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_2fs___get__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_2fs___get__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->fs);
  __pyx_r = __pyx_v_self->fs;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_5FSUse_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5FSUse_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.fs, self.key, self.policy, self.ruletype)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->fs);
  __Pyx_GIVEREF(__pyx_v_self->fs);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->fs) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __Pyx_GIVEREF(__pyx_v_self->ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.fs, self.key, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.fs, self.key, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.fs is not None or self.policy is not None or self.ruletype is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.fs, self.key, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.fs is not None or self.policy is not None or self.ruletype is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdf395a0, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->fs != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->ruletype != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.fs is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_FSUse, (type(self), 0xdf395a0, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.fs is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdf395a0, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdf395a0, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FSUse); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_234067360);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_234067360);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_234067360) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.fs is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_FSUse, (type(self), 0xdf395a0, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_FSUse, (type(self), 0xdf395a0, None), state
 *     else:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdf395a0, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_FSUse__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FSUse); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_234067360);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_234067360);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_234067360) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.FSUse.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdf395a0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FSUse__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_5FSUse_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5FSUse_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.FSUse.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_FSUse, (type(self), 0xdf395a0, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_FSUse__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_FSUse__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdf395a0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FSUse__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.FSUse.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":81
 *                        "chr_file": S_IFCHR}
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def from_class(cls, tclass: ObjClass | str) -> GenfsFiletype:
 *         """Create a GenfsFiletype from an object class."""
*/

/* Python wrapper */
static struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_pw_7setools_9policyrep_13GenfsFiletype_1from_class(PyObject *__pyx_v_cls, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13GenfsFiletype_from_class, "Create a GenfsFiletype from an object class.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13GenfsFiletype_1from_class = {"from_class", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13GenfsFiletype_1from_class, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13GenfsFiletype_from_class};
static struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_pw_7setools_9policyrep_13GenfsFiletype_1from_class(PyObject *__pyx_v_cls, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_tclass = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_class (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_tclass,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 81, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 81, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "from_class", 0) < (0)) __PYX_ERR(12, 81, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("from_class", 1, 1, 1, i); __PYX_ERR(12, 81, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 81, __pyx_L3_error)
    }
    __pyx_v_tclass = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("from_class", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 81, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.GenfsFiletype.from_class", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13GenfsFiletype_from_class(((PyTypeObject*)__pyx_v_cls), __pyx_v_tclass);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_pf_7setools_9policyrep_13GenfsFiletype_from_class(PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_tclass) {
  PyObject *__pyx_v_name = NULL;
  struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("from_class", 0);

  /* "setools/policyrep/fscontext.pxi":84
 *     def from_class(cls, tclass: ObjClass | str) -> GenfsFiletype:
 *         """Create a GenfsFiletype from an object class."""
 *         name = tclass if isinstance(tclass, str) else tclass.name             # <<<<<<<<<<<<<<
 *         return cls(cls._sclass_to_stat[name])
 * 
*/
  __pyx_t_2 = PyUnicode_Check(__pyx_v_tclass); 
  if (__pyx_t_2) {
    __Pyx_INCREF(__pyx_v_tclass);
    __pyx_t_1 = __pyx_v_tclass;
  } else {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_tclass, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  }
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":85
 *         """Create a GenfsFiletype from an object class."""
 *         name = tclass if isinstance(tclass, str) else tclass.name
 *         return cls(cls._sclass_to_stat[name])             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_3 = NULL;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cls), __pyx_mstate_global->__pyx_n_u_sclass_to_stat); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_v_cls, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype))))) __PYX_ERR(12, 85, __pyx_L1_error)
  __pyx_r = ((struct __pyx_obj_7setools_9policyrep_GenfsFiletype *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":81
 *                        "chr_file": S_IFCHR}
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def from_class(cls, tclass: ObjClass | str) -> GenfsFiletype:
 *         """Create a GenfsFiletype from an object class."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.GenfsFiletype.from_class", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":87
 *         return cls(cls._sclass_to_stat[name])
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self._filetype_to_text[self]
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_3__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_3__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13GenfsFiletype_2__str__(((struct __pyx_obj_7setools_9policyrep_GenfsFiletype *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype_2__str__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/fscontext.pxi":88
 * 
 *     def __str__(self):
 *         return self._filetype_to_text[self]             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_filetype_to_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":87
 *         return cls(cls._sclass_to_stat[name])
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self._filetype_to_text[self]
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.GenfsFiletype.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13GenfsFiletype_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13GenfsFiletype_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13GenfsFiletype_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsFiletype *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
  __pyx_v_state = __pyx_mstate_global->__pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xe3b0c44, None), state
*/
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xe3b0c44, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_GenfsFiletype); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_GenfsFiletype__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_GenfsFiletype); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.GenfsFiletype.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GenfsFiletype__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13GenfsFiletype_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13GenfsFiletype_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.GenfsFiletype.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13GenfsFiletype_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsFiletype *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_GenfsFiletype__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_GenfsFiletype__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GenfsFiletype__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.GenfsFiletype.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":101
 *         readonly str path
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Genfscon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol, fstype):
 *         """Factory function for creating Genfscon objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_f_7setools_9policyrep_8Genfscon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol, PyObject *__pyx_v_fstype) {
  struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_g = 0;
  CYTHON_UNUSED PyObject *__pyx_v_ex = NULL;
  PyObject *__pyx_v_log = NULL;
  struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  class_datum_t *__pyx_t_7;
  size_t __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  char const *__pyx_t_16;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/fscontext.pxi":104
 *     cdef inline Genfscon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol, fstype):
 *         """Factory function for creating Genfscon objects."""
 *         cdef Genfscon g = Genfscon.__new__(Genfscon)             # <<<<<<<<<<<<<<
 *         g.policy = policy
 *         g.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Genfscon(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Genfscon), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 104, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_g = ((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":105
 *         """Factory function for creating Genfscon objects."""
 *         cdef Genfscon g = Genfscon.__new__(Genfscon)
 *         g.policy = policy             # <<<<<<<<<<<<<<
 *         g.key = <uintptr_t>symbol
 *         g.fs = fstype
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_g->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_g->__pyx_base.__pyx_base.policy);
  __pyx_v_g->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/fscontext.pxi":106
 *         cdef Genfscon g = Genfscon.__new__(Genfscon)
 *         g.policy = policy
 *         g.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         g.fs = fstype
 *         g.path = intern(symbol.u.name)
*/
  __pyx_v_g->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/fscontext.pxi":107
 *         g.policy = policy
 *         g.key = <uintptr_t>symbol
 *         g.fs = fstype             # <<<<<<<<<<<<<<
 *         g.path = intern(symbol.u.name)
 * 
*/
  __pyx_t_1 = __pyx_v_fstype;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(12, 107, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_g->fs);
  __Pyx_DECREF(__pyx_v_g->fs);
  __pyx_v_g->fs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":108
 *         g.key = <uintptr_t>symbol
 *         g.fs = fstype
 *         g.path = intern(symbol.u.name)             # <<<<<<<<<<<<<<
 * 
 *         if symbol.v.sclass:
*/
  __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_symbol->u.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(12, 108, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_g->path);
  __Pyx_DECREF(__pyx_v_g->path);
  __pyx_v_g->path = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/fscontext.pxi":110
 *         g.path = intern(symbol.u.name)
 * 
 *         if symbol.v.sclass:             # <<<<<<<<<<<<<<
 *             try:
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
*/
  __pyx_t_3 = (__pyx_v_symbol->v.sclass != 0);
  if (__pyx_t_3) {

    /* "setools/policyrep/fscontext.pxi":111
 * 
 *         if symbol.v.sclass:
 *             try:             # <<<<<<<<<<<<<<
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype.from_class(g.tclass)
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      /*try:*/ {

        /* "setools/policyrep/fscontext.pxi":112
 *         if symbol.v.sclass:
 *             try:
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))             # <<<<<<<<<<<<<<
 *                 g.filetype = GenfsFiletype.from_class(g.tclass)
 *             except KeyError as ex:
*/
        __pyx_t_7 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->v.sclass - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 112, __pyx_L4_error)
        __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_t_7)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 112, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        __Pyx_GOTREF((PyObject *)__pyx_v_g->tclass);
        __Pyx_DECREF((PyObject *)__pyx_v_g->tclass);
        __pyx_v_g->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
        __pyx_t_2 = 0;

        /* "setools/policyrep/fscontext.pxi":113
 *             try:
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype.from_class(g.tclass)             # <<<<<<<<<<<<<<
 *             except KeyError as ex:
 *                 log = logging.getLogger(__name__)
*/
        __pyx_t_1 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_8 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_1, ((PyObject *)__pyx_v_g->tclass)};
          __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_from_class, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 113, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_GIVEREF(__pyx_t_2);
        __Pyx_GOTREF(__pyx_v_g->filetype);
        __Pyx_DECREF(__pyx_v_g->filetype);
        __pyx_v_g->filetype = __pyx_t_2;
        __pyx_t_2 = 0;

        /* "setools/policyrep/fscontext.pxi":111
 * 
 *         if symbol.v.sclass:
 *             try:             # <<<<<<<<<<<<<<
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype.from_class(g.tclass)
*/
      }
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "setools/policyrep/fscontext.pxi":114
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype.from_class(g.tclass)
 *             except KeyError as ex:             # <<<<<<<<<<<<<<
 *                 log = logging.getLogger(__name__)
 *                 log.warning("Genfscon {g.fs} {g.path} object class {g.tclass.name} does not match "
*/
      __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
      if (__pyx_t_9) {
        __Pyx_AddTraceback("setools.policyrep.Genfscon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_10) < 0) __PYX_ERR(12, 114, __pyx_L6_except_error)
        __Pyx_XGOTREF(__pyx_t_2);
        __Pyx_XGOTREF(__pyx_t_1);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_v_ex = __pyx_t_1;
        /*try:*/ {

          /* "setools/policyrep/fscontext.pxi":115
 *                 g.filetype = GenfsFiletype.from_class(g.tclass)
 *             except KeyError as ex:
 *                 log = logging.getLogger(__name__)             # <<<<<<<<<<<<<<
 *                 log.warning("Genfscon {g.fs} {g.path} object class {g.tclass.name} does not match "
 *                             "a file object class. Dropping file type.")
*/
          __pyx_t_12 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_logging); if (unlikely(!__pyx_t_13)) __PYX_ERR(12, 115, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_getLogger); if (unlikely(!__pyx_t_14)) __PYX_ERR(12, 115, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(12, 115, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_8 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_14);
            assert(__pyx_t_12);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_14);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_14, __pyx__function);
            __pyx_t_8 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_13};
            __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_14, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (unlikely(!__pyx_t_11)) __PYX_ERR(12, 115, __pyx_L15_error)
            __Pyx_GOTREF(__pyx_t_11);
          }
          __pyx_v_log = __pyx_t_11;
          __pyx_t_11 = 0;

          /* "setools/policyrep/fscontext.pxi":116
 *             except KeyError as ex:
 *                 log = logging.getLogger(__name__)
 *                 log.warning("Genfscon {g.fs} {g.path} object class {g.tclass.name} does not match "             # <<<<<<<<<<<<<<
 *                             "a file object class. Dropping file type.")
 *                 g.filetype = GenfsFiletype(0)
*/
          __pyx_t_14 = __pyx_v_log;
          __Pyx_INCREF(__pyx_t_14);
          __pyx_t_8 = 0;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_mstate_global->__pyx_kp_u_Genfscon_g_fs_g_path_object_clas};
            __pyx_t_11 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_warning, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (unlikely(!__pyx_t_11)) __PYX_ERR(12, 116, __pyx_L15_error)
            __Pyx_GOTREF(__pyx_t_11);
          }
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

          /* "setools/policyrep/fscontext.pxi":118
 *                 log.warning("Genfscon {g.fs} {g.path} object class {g.tclass.name} does not match "
 *                             "a file object class. Dropping file type.")
 *                 g.filetype = GenfsFiletype(0)             # <<<<<<<<<<<<<<
 *                 g.tclass = None
 * 
*/
          __pyx_t_14 = NULL;
          __pyx_t_8 = 1;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_mstate_global->__pyx_int_0};
            __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (unlikely(!__pyx_t_11)) __PYX_ERR(12, 118, __pyx_L15_error)
            __Pyx_GOTREF((PyObject *)__pyx_t_11);
          }
          __Pyx_GIVEREF((PyObject *)__pyx_t_11);
          __Pyx_GOTREF(__pyx_v_g->filetype);
          __Pyx_DECREF(__pyx_v_g->filetype);
          __pyx_v_g->filetype = ((PyObject *)__pyx_t_11);
          __pyx_t_11 = 0;

          /* "setools/policyrep/fscontext.pxi":119
 *                             "a file object class. Dropping file type.")
 *                 g.filetype = GenfsFiletype(0)
 *                 g.tclass = None             # <<<<<<<<<<<<<<
 * 
 *         else:
*/
          __Pyx_INCREF(Py_None);
          __Pyx_GIVEREF(Py_None);
          __Pyx_GOTREF((PyObject *)__pyx_v_g->tclass);
          __Pyx_DECREF((PyObject *)__pyx_v_g->tclass);
          __pyx_v_g->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None);
        }

        /* "setools/policyrep/fscontext.pxi":114
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype.from_class(g.tclass)
 *             except KeyError as ex:             # <<<<<<<<<<<<<<
 *                 log = logging.getLogger(__name__)
 *                 log.warning("Genfscon {g.fs} {g.path} object class {g.tclass.name} does not match "
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
            goto __pyx_L16;
          }
          __pyx_L15_error:;
          /*exception exit:*/{
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
             __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
            if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
            __Pyx_XGOTREF(__pyx_t_17);
            __Pyx_XGOTREF(__pyx_t_18);
            __Pyx_XGOTREF(__pyx_t_19);
            __Pyx_XGOTREF(__pyx_t_20);
            __Pyx_XGOTREF(__pyx_t_21);
            __Pyx_XGOTREF(__pyx_t_22);
            __pyx_t_9 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename;
            {
              __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
            }
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_XGIVEREF(__pyx_t_18);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19);
            __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
            __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16;
            goto __pyx_L6_except_error;
          }
          __pyx_L16:;
        }
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;

      /* "setools/policyrep/fscontext.pxi":111
 * 
 *         if symbol.v.sclass:
 *             try:             # <<<<<<<<<<<<<<
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype.from_class(g.tclass)
*/
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
      goto __pyx_L1_error;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
      __pyx_L9_try_end:;
    }

    /* "setools/policyrep/fscontext.pxi":110
 *         g.path = intern(symbol.u.name)
 * 
 *         if symbol.v.sclass:             # <<<<<<<<<<<<<<
 *             try:
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/fscontext.pxi":122
 * 
 *         else:
 *             g.filetype = GenfsFiletype(0)             # <<<<<<<<<<<<<<
 *             g.tclass = None
 * 
*/
  /*else*/ {
    __pyx_t_1 = NULL;
    __pyx_t_8 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_mstate_global->__pyx_int_0};
      __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(12, 122, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_10);
    }
    __Pyx_GIVEREF((PyObject *)__pyx_t_10);
    __Pyx_GOTREF(__pyx_v_g->filetype);
    __Pyx_DECREF(__pyx_v_g->filetype);
    __pyx_v_g->filetype = ((PyObject *)__pyx_t_10);
    __pyx_t_10 = 0;

    /* "setools/policyrep/fscontext.pxi":123
 *         else:
 *             g.filetype = GenfsFiletype(0)
 *             g.tclass = None             # <<<<<<<<<<<<<<
 * 
 *         g.context = Context.factory(policy, symbol.context)
*/
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    __Pyx_GOTREF((PyObject *)__pyx_v_g->tclass);
    __Pyx_DECREF((PyObject *)__pyx_v_g->tclass);
    __pyx_v_g->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None);
  }
  __pyx_L3:;

  /* "setools/policyrep/fscontext.pxi":125
 *             g.tclass = None
 * 
 *         g.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return g
 * 
*/
  __pyx_t_10 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_10)) __PYX_ERR(12, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_10);
  __Pyx_GOTREF((PyObject *)__pyx_v_g->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_g->__pyx_base.context);
  __pyx_v_g->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_10);
  __pyx_t_10 = 0;

  /* "setools/policyrep/fscontext.pxi":126
 * 
 *         g.context = Context.factory(policy, symbol.context)
 *         return g             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_g);
  __pyx_r = __pyx_v_g;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":101
 *         readonly str path
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Genfscon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol, fstype):
 *         """Factory function for creating Genfscon objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_g);
  __Pyx_XDECREF(__pyx_v_ex);
  __Pyx_XDECREF(__pyx_v_log);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":128
 *         return g
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"genfscon|{self.fs}|{self.path}|{self.filetype}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_8Genfscon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_8Genfscon_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon___hash__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_8Genfscon___hash__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[6];
  PyObject *__pyx_t_5 = NULL;
  Py_hash_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/fscontext.pxi":129
 * 
 *     def __hash__(self):
 *         return hash(f"genfscon|{self.fs}|{self.path}|{self.filetype}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->fs); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_self->path); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->filetype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_genfscon;
  __pyx_t_4[1] = __pyx_t_1;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_4[3] = __pyx_t_2;
  __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_4[5] = __pyx_t_3;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 6, 9 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = PyObject_Hash(__pyx_t_5); if (unlikely(__pyx_t_6 == ((Py_hash_t)-1))) __PYX_ERR(12, 129, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":128
 *         return g
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"genfscon|{self.fs}|{self.path}|{self.filetype}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":131
 *         return hash(f"genfscon|{self.fs}|{self.path}|{self.filetype}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_2__lt__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/fscontext.pxi":133
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 133, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":131
 *         return hash(f"genfscon|{self.fs}|{self.path}|{self.filetype}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":135
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"genfscon {self.fs} {self.path} {self.filetype} {self.context}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Genfscon_5statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Genfscon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_4statement(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_4statement(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[8];
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/fscontext.pxi":136
 * 
 *     def statement(self):
 *         return f"genfscon {self.fs} {self.path} {self.filetype} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->fs); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_self->path); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->filetype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_genfscon_2;
  __pyx_t_5[1] = __pyx_t_1;
  __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_5[3] = __pyx_t_2;
  __pyx_t_5[4] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_5[5] = __pyx_t_3;
  __pyx_t_5[6] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_5[7] = __pyx_t_4;
  __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_5, 8, 9 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
  if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":135
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"genfscon {self.fs} {self.path} {self.filetype} {self.context}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":96
 * 
 *     cdef:
 *         readonly str fs             # <<<<<<<<<<<<<<
 *         readonly object filetype
 *         readonly ObjClass tclass
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_2fs_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_2fs_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_2fs___get__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_2fs___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->fs);
  __pyx_r = __pyx_v_self->fs;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":97
 *     cdef:
 *         readonly str fs
 *         readonly object filetype             # <<<<<<<<<<<<<<
 *         readonly ObjClass tclass
 *         readonly str path
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_8filetype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_8filetype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_8filetype___get__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_8filetype___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->filetype);
  __pyx_r = __pyx_v_self->filetype;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":98
 *         readonly str fs
 *         readonly object filetype
 *         readonly ObjClass tclass             # <<<<<<<<<<<<<<
 *         readonly str path
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_6tclass_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_6tclass___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->tclass);
  __pyx_r = ((PyObject *)__pyx_v_self->tclass);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":99
 *         readonly object filetype
 *         readonly ObjClass tclass
 *         readonly str path             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_4path_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_4path_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_4path___get__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_4path___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->path);
  __pyx_r = __pyx_v_self->path;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Genfscon_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Genfscon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.filetype, self.fs, self.key, self.path, self.policy, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->filetype);
  __Pyx_GIVEREF(__pyx_v_self->filetype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->filetype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->fs);
  __Pyx_GIVEREF(__pyx_v_self->fs);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->fs) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->path);
  __Pyx_GIVEREF(__pyx_v_self->path);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->path) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 6, ((PyObject *)__pyx_v_self->tclass)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.filetype, self.fs, self.key, self.path, self.policy, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.filetype, self.fs, self.key, self.path, self.policy, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.filetype is not None or self.fs is not None or self.path is not None or self.policy is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.filetype, self.fs, self.key, self.path, self.policy, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.filetype is not None or self.fs is not None or self.path is not None or self.policy is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xe199f36, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->filetype != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->fs != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->path != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->tclass) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.filetype is not None or self.fs is not None or self.path is not None or self.policy is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Genfscon, (type(self), 0xe199f36, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.filetype is not None or self.fs is not None or self.path is not None or self.policy is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xe199f36, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xe199f36, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Genfscon); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_236560182);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_236560182);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_236560182) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.filetype is not None or self.fs is not None or self.path is not None or self.policy is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Genfscon, (type(self), 0xe199f36, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Genfscon, (type(self), 0xe199f36, None), state
 *     else:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xe199f36, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Genfscon__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Genfscon); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_236560182);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_236560182);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_236560182) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xe199f36, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Genfscon__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Genfscon_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Genfscon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Genfscon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Genfscon, (type(self), 0xe199f36, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Genfscon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Genfscon__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xe199f36, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Genfscon__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":146
 *     """Iterator for fs_use_* statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating FSUse iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_13FSUseIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/fscontext.pxi":149
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating FSUse iterators."""
 *         i = FSUseIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FSUseIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 149, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_FSUseIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":150
 *         """Factory function for creating FSUse iterators."""
 *         i = FSUseIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/fscontext.pxi":151
 *         i = FSUseIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/fscontext.pxi":152
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":146
 *     """Iterator for fs_use_* statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating FSUse iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.FSUseIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":154
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return FSUse.factory(self.policy, self.ocon)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13FSUseIterator___next__(((struct __pyx_obj_7setools_9policyrep_FSUseIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator___next__(struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/fscontext.pxi":155
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return FSUse.factory(self.policy, self.ocon)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FSUseIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":156
 *     def __next__(self):
 *         super().__next__()
 *         return FSUse.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * cdef class GenfsconIterator:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_5FSUse_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":154
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return FSUse.factory(self.policy, self.ocon)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.FSUseIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13FSUseIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13FSUseIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13FSUseIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_FSUseIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.FSUseIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13FSUseIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13FSUseIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.FSUseIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13FSUseIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_FSUseIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.FSUseIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":168
 *         SELinuxPolicy policy
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.genfs_t *head):
 *         """Factory function for creating genfscon iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_16GenfsconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, genfs_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/fscontext.pxi":171
 *     cdef factory(SELinuxPolicy policy, sepol.genfs_t *head):
 *         """Factory function for creating genfscon iterators."""
 *         i = GenfsconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsconIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 171, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":172
 *         """Factory function for creating genfscon iterators."""
 *         i = GenfsconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->policy);
  __pyx_v_i->policy = __pyx_v_policy;

  /* "setools/policyrep/fscontext.pxi":173
 *         i = GenfsconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->head = __pyx_v_head;
  __pyx_v_i->curr = __pyx_v_head;

  /* "setools/policyrep/fscontext.pxi":174
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __iter__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":168
 *         SELinuxPolicy policy
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.genfs_t *head):
 *         """Factory function for creating genfscon iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":176
 *         return i
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return self
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_1__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_1__iter__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_16GenfsconIterator___iter__(((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator___iter__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__", 0);

  /* "setools/policyrep/fscontext.pxi":177
 * 
 *     def __iter__(self):
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":176
 *         return i
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return self
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":179
 *         return self
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_16GenfsconIterator_2__next__(((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_2__next__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  struct genfs *__pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/fscontext.pxi":181
 *     def __next__(self):
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:             # <<<<<<<<<<<<<<
 *             try:
 *                 return self.ocon_iter.__next__()
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->ocon_iter); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(12, 181, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/fscontext.pxi":182
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:
 *             try:             # <<<<<<<<<<<<<<
 *                 return self.ocon_iter.__next__()
 *             except StopIteration:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      /*try:*/ {

        /* "setools/policyrep/fscontext.pxi":183
 *         if self.ocon_iter:
 *             try:
 *                 return self.ocon_iter.__next__()             # <<<<<<<<<<<<<<
 *             except StopIteration:
 *                 # sub_iter completed, clear
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_6 = __pyx_v_self->ocon_iter;
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_7 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
          __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 183, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_5);
        }
        __pyx_r = __pyx_t_5;
        __pyx_t_5 = 0;
        goto __pyx_L8_try_return;

        /* "setools/policyrep/fscontext.pxi":182
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:
 *             try:             # <<<<<<<<<<<<<<
 *                 return self.ocon_iter.__next__()
 *             except StopIteration:
*/
      }
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "setools/policyrep/fscontext.pxi":184
 *             try:
 *                 return self.ocon_iter.__next__()
 *             except StopIteration:             # <<<<<<<<<<<<<<
 *                 # sub_iter completed, clear
 *                 self.ocon_iter = None
*/
      __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_StopIteration))));
      if (__pyx_t_8) {
        __Pyx_ErrRestore(0,0,0);

        /* "setools/policyrep/fscontext.pxi":186
 *             except StopIteration:
 *                 # sub_iter completed, clear
 *                 self.ocon_iter = None             # <<<<<<<<<<<<<<
 * 
 *         if self.curr == NULL:
*/
        __Pyx_INCREF(Py_None);
        __Pyx_GIVEREF(Py_None);
        __Pyx_GOTREF(__pyx_v_self->ocon_iter);
        __Pyx_DECREF(__pyx_v_self->ocon_iter);
        __pyx_v_self->ocon_iter = Py_None;
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;

      /* "setools/policyrep/fscontext.pxi":182
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:
 *             try:             # <<<<<<<<<<<<<<
 *                 return self.ocon_iter.__next__()
 *             except StopIteration:
*/
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L1_error;
      __pyx_L8_try_return:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L0;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
    }

    /* "setools/policyrep/fscontext.pxi":181
 *     def __next__(self):
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:             # <<<<<<<<<<<<<<
 *             try:
 *                 return self.ocon_iter.__next__()
*/
  }

  /* "setools/policyrep/fscontext.pxi":188
 *                 self.ocon_iter = None
 * 
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (__pyx_v_self->curr == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/fscontext.pxi":189
 * 
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         # create a sub-iterator for this fs entry
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/fscontext.pxi":188
 *                 self.ocon_iter = None
 * 
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/fscontext.pxi":192
 * 
 *         # create a sub-iterator for this fs entry
 *         self.ocon_iter = GenfsconOcontextIterator.factory(self.policy, self.curr.head,             # <<<<<<<<<<<<<<
 *                                                           intern(self.curr.fstype))
 * 
*/
  __pyx_t_5 = ((PyObject *)__pyx_v_self->policy);
  __Pyx_INCREF(__pyx_t_5);

  /* "setools/policyrep/fscontext.pxi":193
 *         # create a sub-iterator for this fs entry
 *         self.ocon_iter = GenfsconOcontextIterator.factory(self.policy, self.curr.head,
 *                                                           intern(self.curr.fstype))             # <<<<<<<<<<<<<<
 * 
 *         self.curr = self.curr.next
*/
  __pyx_t_6 = __Pyx_PyUnicode_FromString(__pyx_v_self->curr->fstype); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = __Pyx_Intern(__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "setools/policyrep/fscontext.pxi":192
 * 
 *         # create a sub-iterator for this fs entry
 *         self.ocon_iter = GenfsconOcontextIterator.factory(self.policy, self.curr.head,             # <<<<<<<<<<<<<<
 *                                                           intern(self.curr.fstype))
 * 
*/
  __pyx_t_6 = __pyx_f_7setools_9policyrep_24GenfsconOcontextIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_5), __pyx_v_self->curr->head, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_GIVEREF(__pyx_t_6);
  __Pyx_GOTREF(__pyx_v_self->ocon_iter);
  __Pyx_DECREF(__pyx_v_self->ocon_iter);
  __pyx_v_self->ocon_iter = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "setools/policyrep/fscontext.pxi":195
 *                                                           intern(self.curr.fstype))
 * 
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return self.ocon_iter.__next__()
 * 
*/
  __pyx_t_10 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_10;

  /* "setools/policyrep/fscontext.pxi":196
 * 
 *         self.curr = self.curr.next
 *         return self.ocon_iter.__next__()             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = __pyx_v_self->ocon_iter;
  __Pyx_INCREF(__pyx_t_9);
  __pyx_t_7 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL};
    __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":179
 *         return self
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":198
 *         return self.ocon_iter.__next__()
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count = 0
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_16GenfsconIterator_5__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_16GenfsconIterator_5__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_16GenfsconIterator_4__len__(((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_16GenfsconIterator_4__len__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self) {
  size_t __pyx_v_count;
  genfs_t *__pyx_v_genfs;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  genfs_t *__pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  struct genfs *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/fscontext.pxi":200
 *     def __len__(self):
 *         cdef:
 *             size_t count = 0             # <<<<<<<<<<<<<<
 *             sepol.genfs_t *genfs = self.head
 * 
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/fscontext.pxi":201
 *         cdef:
 *             size_t count = 0
 *             sepol.genfs_t *genfs = self.head             # <<<<<<<<<<<<<<
 * 
 *         while genfs:
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_genfs = __pyx_t_1;

  /* "setools/policyrep/fscontext.pxi":203
 *             sepol.genfs_t *genfs = self.head
 * 
 *         while genfs:             # <<<<<<<<<<<<<<
 *             count += len(GenfsconOcontextIterator.factory(self.policy, genfs.head, genfs.fstype))
 *             genfs = genfs.next
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_genfs != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/fscontext.pxi":204
 * 
 *         while genfs:
 *             count += len(GenfsconOcontextIterator.factory(self.policy, genfs.head, genfs.fstype))             # <<<<<<<<<<<<<<
 *             genfs = genfs.next
 * 
*/
    __pyx_t_3 = ((PyObject *)__pyx_v_self->policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyUnicode_FromString(__pyx_v_genfs->fstype); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __pyx_f_7setools_9policyrep_24GenfsconOcontextIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_genfs->head, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(12, 204, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_count = (__pyx_v_count + __pyx_t_6);

    /* "setools/policyrep/fscontext.pxi":205
 *         while genfs:
 *             count += len(GenfsconOcontextIterator.factory(self.policy, genfs.head, genfs.fstype))
 *             genfs = genfs.next             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_t_7 = __pyx_v_genfs->next;
    __pyx_v_genfs = __pyx_t_7;
  }

  /* "setools/policyrep/fscontext.pxi":207
 *             genfs = genfs.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":198
 *         return self.ocon_iter.__next__()
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count = 0
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_16GenfsconIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16GenfsconIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_16GenfsconIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_16GenfsconIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16GenfsconIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_16GenfsconIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":216
 *     cdef str fs
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, fstype):
 *         """Factory function for creating genfscon sub-iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_24GenfsconOcontextIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head, PyObject *__pyx_v_fstype) {
  struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/fscontext.pxi":219
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, fstype):
 *         """Factory function for creating genfscon sub-iterators."""
 *         i = GenfsconOcontextIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 219, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":220
 *         """Factory function for creating genfscon sub-iterators."""
 *         i = GenfsconOcontextIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         i.fs = fstype
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/fscontext.pxi":221
 *         i = GenfsconOcontextIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         i.fs = fstype
 *         return i
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/fscontext.pxi":222
 *         i.policy = policy
 *         i.head = i.curr = head
 *         i.fs = fstype             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_1 = __pyx_v_fstype;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(12, 222, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->fs);
  __Pyx_DECREF(__pyx_v_i->fs);
  __pyx_v_i->fs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":223
 *         i.head = i.curr = head
 *         i.fs = fstype
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":216
 *     cdef str fs
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, fstype):
 *         """Factory function for creating genfscon sub-iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.GenfsconOcontextIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":225
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Genfscon.factory(self.policy, self.ocon, self.fs)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator___next__(((struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator___next__(struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/fscontext.pxi":226
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Genfscon.factory(self.policy, self.ocon, self.fs)
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":227
 *     def __next__(self):
 *         super().__next__()
 *         return Genfscon.factory(self.policy, self.ocon, self.fs)             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = __pyx_v_self->fs;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8Genfscon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon, __pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":225
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Genfscon.factory(self.policy, self.ocon, self.fs)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.GenfsconOcontextIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_24GenfsconOcontextIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.GenfsconOcontextIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_24GenfsconOcontextIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.GenfsconOcontextIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.GenfsconOcontextIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/initsid.pxi":30
 *     cdef readonly str name
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline InitialSID factory(SELinuxPolicy policy, sepol.ocontext *symbol):
 *         """Factory function for creating InitialSID objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_f_7setools_9policyrep_10InitialSID_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct ocontext *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_i = 0;
  struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/initsid.pxi":33
 *     cdef inline InitialSID factory(SELinuxPolicy policy, sepol.ocontext *symbol):
 *         """Factory function for creating InitialSID objects."""
 *         cdef InitialSID i = InitialSID.__new__(InitialSID)             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_InitialSID(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_InitialSID), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 33, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/initsid.pxi":34
 *         """Factory function for creating InitialSID objects."""
 *         cdef InitialSID i = InitialSID.__new__(InitialSID)
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.key = <uintptr_t>symbol
 *         i.context = Context.factory(policy, symbol.context)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/initsid.pxi":35
 *         cdef InitialSID i = InitialSID.__new__(InitialSID)
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         i.context = Context.factory(policy, symbol.context)
 * 
*/
  __pyx_v_i->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/initsid.pxi":36
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 *         i.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 * 
 *         if symbol.u.name:
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.context);
  __pyx_v_i->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/initsid.pxi":38
 *         i.context = Context.factory(policy, symbol.context)
 * 
 *         if symbol.u.name:             # <<<<<<<<<<<<<<
 *             i.name = intern(symbol.u.name)
 *         elif policy.target_platform == PolicyTarget.selinux:
*/
  __pyx_t_2 = (__pyx_v_symbol->u.name != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/initsid.pxi":39
 * 
 *         if symbol.u.name:
 *             i.name = intern(symbol.u.name)             # <<<<<<<<<<<<<<
 *         elif policy.target_platform == PolicyTarget.selinux:
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
*/
    __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_symbol->u.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 39, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 39, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(13, 39, __pyx_L1_error)
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_i->name);
    __Pyx_DECREF(__pyx_v_i->name);
    __pyx_v_i->name = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/initsid.pxi":38
 *         i.context = Context.factory(policy, symbol.context)
 * 
 *         if symbol.u.name:             # <<<<<<<<<<<<<<
 *             i.name = intern(symbol.u.name)
 *         elif policy.target_platform == PolicyTarget.selinux:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/initsid.pxi":40
 *         if symbol.u.name:
 *             i.name = intern(symbol.u.name)
 *         elif policy.target_platform == PolicyTarget.selinux:             # <<<<<<<<<<<<<<
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         elif policy.target_platform == PolicyTarget.xen:
*/
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PolicyTarget); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_selinux); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_policy->target_platform, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(13, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {

    /* "setools/policyrep/initsid.pxi":41
 *             i.name = intern(symbol.u.name)
 *         elif policy.target_platform == PolicyTarget.selinux:
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]             # <<<<<<<<<<<<<<
 *         elif policy.target_platform == PolicyTarget.xen:
 *             i.name = XEN_SIDNAMES[<uint32_t>symbol.sid[0]]
*/
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SELINUX_SIDNAMES); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, ((uint32_t)(__pyx_v_symbol->sid[0])), uint32_t, 0, __Pyx_PyLong_From_uint32_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(13, 41, __pyx_L1_error)
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF(__pyx_v_i->name);
    __Pyx_DECREF(__pyx_v_i->name);
    __pyx_v_i->name = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/initsid.pxi":40
 *         if symbol.u.name:
 *             i.name = intern(symbol.u.name)
 *         elif policy.target_platform == PolicyTarget.selinux:             # <<<<<<<<<<<<<<
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         elif policy.target_platform == PolicyTarget.xen:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/initsid.pxi":42
 *         elif policy.target_platform == PolicyTarget.selinux:
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         elif policy.target_platform == PolicyTarget.xen:             # <<<<<<<<<<<<<<
 *             i.name = XEN_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         else:
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PolicyTarget); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_xen); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_policy->target_platform, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(13, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_2)) {

    /* "setools/policyrep/initsid.pxi":43
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         elif policy.target_platform == PolicyTarget.xen:
 *             i.name = XEN_SIDNAMES[<uint32_t>symbol.sid[0]]             # <<<<<<<<<<<<<<
 *         else:
 *             raise NotImplementedError
*/
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_XEN_SIDNAMES); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 43, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, ((uint32_t)(__pyx_v_symbol->sid[0])), uint32_t, 0, __Pyx_PyLong_From_uint32_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 43, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(13, 43, __pyx_L1_error)
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_i->name);
    __Pyx_DECREF(__pyx_v_i->name);
    __pyx_v_i->name = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/initsid.pxi":42
 *         elif policy.target_platform == PolicyTarget.selinux:
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         elif policy.target_platform == PolicyTarget.xen:             # <<<<<<<<<<<<<<
 *             i.name = XEN_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         else:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/initsid.pxi":45
 *             i.name = XEN_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         else:
 *             raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *         return i
*/
  /*else*/ {
    __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_NotImplementedError))), 0, 0, 0);
    __PYX_ERR(13, 45, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "setools/policyrep/initsid.pxi":47
 *             raise NotImplementedError
 * 
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = __pyx_v_i;
  goto __pyx_L0;

  /* "setools/policyrep/initsid.pxi":30
 *     cdef readonly str name
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline InitialSID factory(SELinuxPolicy policy, sepol.ocontext *symbol):
 *         """Factory function for creating InitialSID objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.InitialSID.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/initsid.pxi":49
 *         return i
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_1__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10InitialSID___str__(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID___str__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/initsid.pxi":50
 * 
 *     def __str__(self):
 *         return self.name             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

  /* "setools/policyrep/initsid.pxi":49
 *         return i
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/initsid.pxi":52
 *         return self.name
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"sid {self.name} {self.context}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_3statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10InitialSID_3statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10InitialSID_3statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_3statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_10InitialSID_2statement(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_2statement(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[4];
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/initsid.pxi":53
 * 
 *     def statement(self):
 *         return f"sid {self.name} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_sid;
  __pyx_t_3[1] = __pyx_t_1;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_3[3] = __pyx_t_2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/initsid.pxi":52
 *         return self.name
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"sid {self.name} {self.context}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.InitialSID.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/initsid.pxi":28
 *     """An initial SID statement."""
 * 
 *     cdef readonly str name             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_4name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10InitialSID_4name___get__(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_4name___get__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10InitialSID_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10InitialSID_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_10InitialSID_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->name);
  __Pyx_GIVEREF(__pyx_v_self->name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_InitialSID, (type(self), 0x00f465e, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->name != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_InitialSID, (type(self), 0x00f465e, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_InitialSID, (type(self), 0x00f465e, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_InitialSID, (type(self), 0x00f465e, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_InitialSID); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1001054);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_1001054);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_1001054) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_InitialSID, (type(self), 0x00f465e, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_InitialSID, (type(self), 0x00f465e, None), state
 *     else:
 *         return __pyx_unpickle_InitialSID, (type(self), 0x00f465e, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_InitialSID__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_InitialSID); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1001054);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_1001054);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_1001054) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.InitialSID.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InitialSID, (type(self), 0x00f465e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InitialSID__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10InitialSID_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10InitialSID_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.InitialSID.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10InitialSID_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_InitialSID, (type(self), 0x00f465e, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_InitialSID__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_InitialSID__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InitialSID, (type(self), 0x00f465e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InitialSID__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.InitialSID.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/initsid.pxi":60
 *     """Iterator for initial SID statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating initial SID iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_18InitialSIDIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/initsid.pxi":63
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating initial SID iterators."""
 *         i = InitialSIDIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_InitialSIDIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 63, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/initsid.pxi":64
 *         """Factory function for creating initial SID iterators."""
 *         i = InitialSIDIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/initsid.pxi":65
 *         i = InitialSIDIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/initsid.pxi":66
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/initsid.pxi":60
 *     """Iterator for initial SID statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating initial SID iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.InitialSIDIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/initsid.pxi":68
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return InitialSID.factory(self.policy, self.ocon)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_18InitialSIDIterator___next__(((struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator___next__(struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/initsid.pxi":69
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return InitialSID.factory(self.policy, self.ocon)
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_InitialSIDIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 69, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 69, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/initsid.pxi":70
 *     def __next__(self):
 *         super().__next__()
 *         return InitialSID.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_10InitialSID_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/initsid.pxi":68
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return InitialSID.factory(self.policy, self.ocon)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.InitialSIDIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18InitialSIDIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18InitialSIDIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_18InitialSIDIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.InitialSIDIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18InitialSIDIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18InitialSIDIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.InitialSIDIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_18InitialSIDIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.InitialSIDIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":16
 * # Classes
 * #
 * cdef list expand_cat_range(SELinuxPolicy policy, Category low, Category high):             # <<<<<<<<<<<<<<
 *     """
 *     Helper function to expand a category range, e.g. c0.c1023
*/

static PyObject *__pyx_f_7setools_9policyrep_expand_cat_range(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_low, struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_high) {
  PyObject *__pyx_v_expanded = 0;
  uint32_t __pyx_v_value;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  uint32_t __pyx_t_3;
  uint32_t __pyx_t_4;
  cat_datum_t *__pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand_cat_range", 0);

  /* "setools/policyrep/mls.pxi":24
 * 
 *     cdef list expanded
 *     expanded = [low, high]             # <<<<<<<<<<<<<<
 *     for value in range(low._value, high._value):
 *         expanded.append(Category.factory(policy, policy.category_value_to_datum(value)))
*/
  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_GIVEREF((PyObject *)__pyx_v_low);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_low)) != (0)) __PYX_ERR(3, 24, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_GIVEREF((PyObject *)__pyx_v_high);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_high)) != (0)) __PYX_ERR(3, 24, __pyx_L1_error);
  __pyx_v_expanded = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":25
 *     cdef list expanded
 *     expanded = [low, high]
 *     for value in range(low._value, high._value):             # <<<<<<<<<<<<<<
 *         expanded.append(Category.factory(policy, policy.category_value_to_datum(value)))
 * 
*/
  __pyx_t_2 = __pyx_v_high->_value;
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = __pyx_v_low->_value; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_value = __pyx_t_4;

    /* "setools/policyrep/mls.pxi":26
 *     expanded = [low, high]
 *     for value in range(low._value, high._value):
 *         expanded.append(Category.factory(policy, policy.category_value_to_datum(value)))             # <<<<<<<<<<<<<<
 * 
 *     return expanded
*/
    __pyx_t_5 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum(__pyx_v_policy, __pyx_v_value); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26, __pyx_L1_error)
    __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_8Category_factory(__pyx_v_policy, __pyx_t_5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_expanded, __pyx_t_1); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 26, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "setools/policyrep/mls.pxi":28
 *         expanded.append(Category.factory(policy, policy.category_value_to_datum(value)))
 * 
 *     return expanded             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_expanded);
  __pyx_r = __pyx_v_expanded;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":16
 * # Classes
 * #
 * cdef list expand_cat_range(SELinuxPolicy policy, Category low, Category high):             # <<<<<<<<<<<<<<
 *     """
 *     Helper function to expand a category range, e.g. c0.c1023
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.expand_cat_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_expanded);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":39
 *         list _aliases
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Category factory(SELinuxPolicy policy, sepol.cat_datum_t *symbol):
 *         """Factory function for creating Category objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Category *__pyx_f_7setools_9policyrep_8Category_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cat_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_c = 0;
  struct __pyx_obj_7setools_9policyrep_Category *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  uint32_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":43
 *         """Factory function for creating Category objects."""
 *         cdef Category c
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  __pyx_t_1 = (!__pyx_v_policy->mls);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":44
 *         cdef Category c
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 44, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":43
 *         """Factory function for creating Category objects."""
 *         cdef Category c
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  }

  /* "setools/policyrep/mls.pxi":46
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cat_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":47
 * 
 *         try:
 *             return _cat_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             c = Category.__new__(Category)
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__cat_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 47, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 47, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Category))))) __PYX_ERR(3, 47, __pyx_L4_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_t_6);
      __pyx_t_6 = 0;
      goto __pyx_L8_try_return;

      /* "setools/policyrep/mls.pxi":46
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cat_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/mls.pxi":48
 *         try:
 *             return _cat_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             c = Category.__new__(Category)
 *             c.policy = policy
*/
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_7) {
      __Pyx_AddTraceback("setools.policyrep.Category.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_8) < 0) __PYX_ERR(3, 48, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_8);

      /* "setools/policyrep/mls.pxi":49
 *             return _cat_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             c = Category.__new__(Category)             # <<<<<<<<<<<<<<
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
*/
      __pyx_t_9 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Category(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Category), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 49, __pyx_L6_except_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_9);
      __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":50
 *         except KeyError:
 *             c = Category.__new__(Category)
 *             c.policy = policy             # <<<<<<<<<<<<<<
 *             c.key = <uintptr_t>symbol
 *             c.name = policy.category_value_to_name(symbol.s.value - 1)
*/
      __Pyx_INCREF((PyObject *)__pyx_v_policy);
      __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
      __Pyx_GOTREF((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy);
      __pyx_v_c->__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/mls.pxi":51
 *             c = Category.__new__(Category)
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             c.name = policy.category_value_to_name(symbol.s.value - 1)
 *             c._value = symbol.s.value
*/
      __pyx_v_c->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/mls.pxi":52
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 *             c.name = policy.category_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 *             c._value = symbol.s.value
 *             c._aliases = policy.category_alias_map[symbol.s.value]
*/
      __pyx_t_9 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 52, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_GOTREF(__pyx_v_c->__pyx_base.name);
      __Pyx_DECREF(__pyx_v_c->__pyx_base.name);
      __pyx_v_c->__pyx_base.name = ((PyObject*)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":53
 *             c.key = <uintptr_t>symbol
 *             c.name = policy.category_value_to_name(symbol.s.value - 1)
 *             c._value = symbol.s.value             # <<<<<<<<<<<<<<
 *             c._aliases = policy.category_alias_map[symbol.s.value]
 *             _cat_cache[policy][<uintptr_t>symbol] = c
*/
      __pyx_t_10 = __pyx_v_symbol->s.value;
      __pyx_v_c->_value = __pyx_t_10;

      /* "setools/policyrep/mls.pxi":54
 *             c.name = policy.category_value_to_name(symbol.s.value - 1)
 *             c._value = symbol.s.value
 *             c._aliases = policy.category_alias_map[symbol.s.value]             # <<<<<<<<<<<<<<
 *             _cat_cache[policy][<uintptr_t>symbol] = c
 *             return c
*/
      if (unlikely(__pyx_v_policy->category_alias_map == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(3, 54, __pyx_L6_except_error)
      }
      __pyx_t_9 = __Pyx_PyLong_From_uint32_t(__pyx_v_symbol->s.value); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 54, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_policy->category_alias_map, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 54, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_11))) __PYX_ERR(3, 54, __pyx_L6_except_error)
      __Pyx_GIVEREF(__pyx_t_11);
      __Pyx_GOTREF(__pyx_v_c->_aliases);
      __Pyx_DECREF(__pyx_v_c->_aliases);
      __pyx_v_c->_aliases = ((PyObject*)__pyx_t_11);
      __pyx_t_11 = 0;

      /* "setools/policyrep/mls.pxi":55
 *             c._value = symbol.s.value
 *             c._aliases = policy.category_alias_map[symbol.s.value]
 *             _cat_cache[policy][<uintptr_t>symbol] = c             # <<<<<<<<<<<<<<
 *             return c
 * 
*/
      __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__cat_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 55, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      if (unlikely((__Pyx_SetItemInt(__pyx_t_11, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_c), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(3, 55, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

      /* "setools/policyrep/mls.pxi":56
 *             c._aliases = policy.category_alias_map[symbol.s.value]
 *             _cat_cache[policy][<uintptr_t>symbol] = c
 *             return c             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __Pyx_INCREF((PyObject *)__pyx_v_c);
      __pyx_r = __pyx_v_c;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;

    /* "setools/policyrep/mls.pxi":46
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cat_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":39
 *         list _aliases
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Category factory(SELinuxPolicy policy, sepol.cat_datum_t *symbol):
 *         """Factory function for creating Category objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.Category.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":58
 *             return c
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_8Category_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_8Category_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category___hash__(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_8Category___hash__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mls.pxi":59
 * 
 *     def __hash__(self):
 *         return hash(self.name)             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __pyx_v_self->__pyx_base.name;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(3, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":58
 *             return c
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Category.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":61
 *         return hash(self.name)
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # Comparison based on their index instead of their names.
 *         return self._value < other._value
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Category_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_2__lt__(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Category_2__lt__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/mls.pxi":63
 *     def __lt__(self, other):
 *         # Comparison based on their index instead of their names.
 *         return self._value < other._value             # <<<<<<<<<<<<<<
 * 
 *     def aliases(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_value_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":61
 *         return hash(self.name)
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # Comparison based on their index instead of their names.
 *         return self._value < other._value
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Category.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":65
 *         return self._value < other._value
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this category."""
 *         return iter(self._aliases)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_5aliases(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_8Category_4aliases, "Generator that yields all aliases for this category.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Category_5aliases = {"aliases", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Category_5aliases, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8Category_4aliases};
static PyObject *__pyx_pw_7setools_9policyrep_8Category_5aliases(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("aliases (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("aliases", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("aliases", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_4aliases(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Category_4aliases(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("aliases", 0);

  /* "setools/policyrep/mls.pxi":67
 *     def aliases(self):
 *         """Generator that yields all aliases for this category."""
 *         return iter(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":65
 *         return self._value < other._value
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this category."""
 *         return iter(self._aliases)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Category.aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":69
 *         return iter(self._aliases)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             str stmt
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_7statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Category_7statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Category_7statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Category_7statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_6statement(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Category_6statement(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self) {
  PyObject *__pyx_v_stmt = 0;
  size_t __pyx_v_count;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mls.pxi":74
 *             size_t count
 * 
 *         count = len(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *         stmt = f"category {self.name}"
*/
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(3, 74, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(3, 74, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_count = __pyx_t_2;

  /* "setools/policyrep/mls.pxi":76
 *         count = len(self._aliases)
 * 
 *         stmt = f"category {self.name}"             # <<<<<<<<<<<<<<
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
*/
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_category, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stmt = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/mls.pxi":77
 * 
 *         stmt = f"category {self.name}"
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
 *         elif count == 1:
*/
  __pyx_t_4 = (__pyx_v_count > 1);
  if (__pyx_t_4) {

    /* "setools/policyrep/mls.pxi":78
 *         stmt = f"category {self.name}"
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"             # <<<<<<<<<<<<<<
 *         elif count == 1:
 *             stmt += f" alias {self._aliases[0]}"
*/
    __pyx_t_3 = __pyx_v_self->_aliases;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_alias;
    __pyx_t_5[1] = __pyx_t_1;
    __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u__7;
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, 9 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 2, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
    if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":77
 * 
 *         stmt = f"category {self.name}"
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
 *         elif count == 1:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/mls.pxi":79
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {self._aliases[0]}"
 *         stmt += ";"
*/
  __pyx_t_4 = (__pyx_v_count == 1);
  if (__pyx_t_4) {

    /* "setools/policyrep/mls.pxi":80
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
 *         elif count == 1:
 *             stmt += f" alias {self._aliases[0]}"             # <<<<<<<<<<<<<<
 *         stmt += ";"
 *         return stmt
*/
    if (unlikely(__pyx_v_self->_aliases == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(3, 80, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->_aliases, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_alias_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "setools/policyrep/mls.pxi":79
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {self._aliases[0]}"
 *         stmt += ";"
*/
  }
  __pyx_L3:;

  /* "setools/policyrep/mls.pxi":81
 *         elif count == 1:
 *             stmt += f" alias {self._aliases[0]}"
 *         stmt += ";"             # <<<<<<<<<<<<<<
 *         return stmt
 * 
*/
  __pyx_t_3 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_mstate_global->__pyx_kp_u__2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_3));
  __pyx_t_3 = 0;

  /* "setools/policyrep/mls.pxi":82
 *             stmt += f" alias {self._aliases[0]}"
 *         stmt += ";"
 *         return stmt             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stmt);
  __pyx_r = __pyx_v_stmt;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":69
 *         return iter(self._aliases)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             str stmt
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Category.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":36
 * 
 *     cdef:
 *         readonly uint32_t _value             # <<<<<<<<<<<<<<
 *         list _aliases
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_6_value_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Category_6_value_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_6_value___get__(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Category_6_value___get__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Category._value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Category_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Category_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Category_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Category_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._aliases, self._value, self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->_aliases);
  __Pyx_GIVEREF(__pyx_v_self->_aliases);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->_aliases) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_self->__pyx_base.name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._aliases, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self._aliases, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._aliases is not None or self.name is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._aliases, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._aliases is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Category, (type(self), 0x249d746, None), state
*/
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->_aliases != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Category, (type(self), 0x249d746, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._aliases is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Category, (type(self), 0x249d746, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Category, (type(self), 0x249d746, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Category); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_38393670);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_38393670);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_38393670) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Category, (type(self), 0x249d746, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Category, (type(self), 0x249d746, None), state
 *     else:
 *         return __pyx_unpickle_Category, (type(self), 0x249d746, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Category__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Category); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_38393670);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_38393670);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_38393670) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Category.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Category, (type(self), 0x249d746, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Category__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Category_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Category_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Category_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Category.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Category_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Category, (type(self), 0x249d746, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Category__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Category__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Category, (type(self), 0x249d746, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Category__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Category.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":94
 *         LevelDecl _leveldecl
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Sensitivity factory(SELinuxPolicy policy, sepol.level_datum_t *symbol):
 *         """Factory function for creating Sensitivity objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_f_7setools_9policyrep_11Sensitivity_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, level_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_s = 0;
  struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  uint32_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":98
 *         """Factory function for creating Sensitivity objects."""
 *         cdef Sensitivity s
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  __pyx_t_1 = (!__pyx_v_policy->mls);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":99
 *         cdef Sensitivity s
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 99, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":98
 *         """Factory function for creating Sensitivity objects."""
 *         cdef Sensitivity s
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  }

  /* "setools/policyrep/mls.pxi":101
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _sens_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":102
 * 
 *         try:
 *             return _sens_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             s = Sensitivity.__new__(Sensitivity)
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__sens_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 102, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 102, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity))))) __PYX_ERR(3, 102, __pyx_L4_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_6);
      __pyx_t_6 = 0;
      goto __pyx_L8_try_return;

      /* "setools/policyrep/mls.pxi":101
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _sens_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/mls.pxi":103
 *         try:
 *             return _sens_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             s = Sensitivity.__new__(Sensitivity)
 *             _sens_cache[policy][<uintptr_t>symbol] = s
*/
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_7) {
      __Pyx_AddTraceback("setools.policyrep.Sensitivity.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_8) < 0) __PYX_ERR(3, 103, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_8);

      /* "setools/policyrep/mls.pxi":104
 *             return _sens_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             s = Sensitivity.__new__(Sensitivity)             # <<<<<<<<<<<<<<
 *             _sens_cache[policy][<uintptr_t>symbol] = s
 *             s.policy = policy
*/
      __pyx_t_9 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Sensitivity(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 104, __pyx_L6_except_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_9);
      __pyx_v_s = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":105
 *         except KeyError:
 *             s = Sensitivity.__new__(Sensitivity)
 *             _sens_cache[policy][<uintptr_t>symbol] = s             # <<<<<<<<<<<<<<
 *             s.policy = policy
 *             s.key = <uintptr_t>symbol
*/
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__sens_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 105, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely((__Pyx_SetItemInt(__pyx_t_9, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_s), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(3, 105, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":106
 *             s = Sensitivity.__new__(Sensitivity)
 *             _sens_cache[policy][<uintptr_t>symbol] = s
 *             s.policy = policy             # <<<<<<<<<<<<<<
 *             s.key = <uintptr_t>symbol
 *             s.name = policy.level_value_to_name(symbol.level.sens - 1)
*/
      __Pyx_INCREF((PyObject *)__pyx_v_policy);
      __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
      __Pyx_GOTREF((PyObject *)__pyx_v_s->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_v_s->__pyx_base.__pyx_base.policy);
      __pyx_v_s->__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/mls.pxi":107
 *             _sens_cache[policy][<uintptr_t>symbol] = s
 *             s.policy = policy
 *             s.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             s.name = policy.level_value_to_name(symbol.level.sens - 1)
 *             s._value = symbol.level.sens
*/
      __pyx_v_s->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/mls.pxi":108
 *             s.policy = policy
 *             s.key = <uintptr_t>symbol
 *             s.name = policy.level_value_to_name(symbol.level.sens - 1)             # <<<<<<<<<<<<<<
 *             s._value = symbol.level.sens
 *             s._aliases = policy.sensitivity_alias_map[symbol.level.sens]
*/
      __pyx_t_9 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_name(__pyx_v_policy, (__pyx_v_symbol->level->sens - 1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 108, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_GOTREF(__pyx_v_s->__pyx_base.name);
      __Pyx_DECREF(__pyx_v_s->__pyx_base.name);
      __pyx_v_s->__pyx_base.name = ((PyObject*)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":109
 *             s.key = <uintptr_t>symbol
 *             s.name = policy.level_value_to_name(symbol.level.sens - 1)
 *             s._value = symbol.level.sens             # <<<<<<<<<<<<<<
 *             s._aliases = policy.sensitivity_alias_map[symbol.level.sens]
 *             return s
*/
      __pyx_t_10 = __pyx_v_symbol->level->sens;
      __pyx_v_s->_value = __pyx_t_10;

      /* "setools/policyrep/mls.pxi":110
 *             s.name = policy.level_value_to_name(symbol.level.sens - 1)
 *             s._value = symbol.level.sens
 *             s._aliases = policy.sensitivity_alias_map[symbol.level.sens]             # <<<<<<<<<<<<<<
 *             return s
 * 
*/
      if (unlikely(__pyx_v_policy->sensitivity_alias_map == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(3, 110, __pyx_L6_except_error)
      }
      __pyx_t_9 = __Pyx_PyLong_From_uint32_t(__pyx_v_symbol->level->sens); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 110, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_policy->sensitivity_alias_map, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 110, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_11))) __PYX_ERR(3, 110, __pyx_L6_except_error)
      __Pyx_GIVEREF(__pyx_t_11);
      __Pyx_GOTREF(__pyx_v_s->_aliases);
      __Pyx_DECREF(__pyx_v_s->_aliases);
      __pyx_v_s->_aliases = ((PyObject*)__pyx_t_11);
      __pyx_t_11 = 0;

      /* "setools/policyrep/mls.pxi":111
 *             s._value = symbol.level.sens
 *             s._aliases = policy.sensitivity_alias_map[symbol.level.sens]
 *             return s             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __Pyx_INCREF((PyObject *)__pyx_v_s);
      __pyx_r = __pyx_v_s;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;

    /* "setools/policyrep/mls.pxi":101
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _sens_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":94
 *         LevelDecl _leveldecl
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Sensitivity factory(SELinuxPolicy policy, sepol.level_datum_t *symbol):
 *         """Factory function for creating Sensitivity objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_s);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":113
 *             return s
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_11Sensitivity_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_11Sensitivity_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity___hash__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_11Sensitivity___hash__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mls.pxi":114
 * 
 *     def __hash__(self):
 *         return hash(self.name)             # <<<<<<<<<<<<<<
 * 
 *     def __ge__(self, other):
*/
  __pyx_t_1 = __pyx_v_self->__pyx_base.name;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(3, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":113
 *             return s
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":116
 *         return hash(self.name)
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value >= other._value
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_3__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_3__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__ge__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_2__ge__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_2__ge__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ge__", 0);

  /* "setools/policyrep/mls.pxi":117
 * 
 *     def __ge__(self, other):
 *         return self._value >= other._value             # <<<<<<<<<<<<<<
 * 
 *     def __gt__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_value_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":116
 *         return hash(self.name)
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value >= other._value
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__ge__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":119
 *         return self._value >= other._value
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value > other._value
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_5__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_5__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__gt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_4__gt__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_4__gt__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__gt__", 0);

  /* "setools/policyrep/mls.pxi":120
 * 
 *     def __gt__(self, other):
 *         return self._value > other._value             # <<<<<<<<<<<<<<
 * 
 *     def __le__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_value_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":119
 *         return self._value >= other._value
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value > other._value
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__gt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":122
 *         return self._value > other._value
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value <= other._value
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_7__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_7__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__le__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_6__le__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_6__le__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__le__", 0);

  /* "setools/policyrep/mls.pxi":123
 * 
 *     def __le__(self, other):
 *         return self._value <= other._value             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_value_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":122
 *         return self._value > other._value
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value <= other._value
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__le__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":125
 *         return self._value <= other._value
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value < other._value
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_9__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_9__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_8__lt__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_8__lt__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/mls.pxi":126
 * 
 *     def __lt__(self, other):
 *         return self._value < other._value             # <<<<<<<<<<<<<<
 * 
 *     def aliases(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_value_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":125
 *         return self._value <= other._value
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value < other._value
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":128
 *         return self._value < other._value
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this sensitivity."""
 *         return iter(self._aliases)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_11aliases(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_11Sensitivity_10aliases, "Generator that yields all aliases for this sensitivity.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Sensitivity_11aliases = {"aliases", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Sensitivity_11aliases, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Sensitivity_10aliases};
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_11aliases(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("aliases (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("aliases", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("aliases", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_10aliases(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_10aliases(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("aliases", 0);

  /* "setools/policyrep/mls.pxi":130
 *     def aliases(self):
 *         """Generator that yields all aliases for this sensitivity."""
 *         return iter(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *     def level_decl(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":128
 *         return self._value < other._value
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this sensitivity."""
 *         return iter(self._aliases)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":132
 *         return iter(self._aliases)
 * 
 *     def level_decl(self):             # <<<<<<<<<<<<<<
 *         """Get the level declaration corresponding to this sensitivity."""
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_13level_decl(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_11Sensitivity_12level_decl, "Get the level declaration corresponding to this sensitivity.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Sensitivity_13level_decl = {"level_decl", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Sensitivity_13level_decl, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Sensitivity_12level_decl};
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_13level_decl(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("level_decl (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("level_decl", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("level_decl", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_12level_decl(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_12level_decl(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  level_datum_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("level_decl", 0);

  /* "setools/policyrep/mls.pxi":134
 *     def level_decl(self):
 *         """Get the level declaration corresponding to this sensitivity."""
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key             # <<<<<<<<<<<<<<
 *         if self._leveldecl is None:
 *             self._leveldecl = LevelDecl.factory(self.policy, symbol)
*/
  __pyx_v_symbol = ((level_datum_t *)__pyx_v_self->__pyx_base.__pyx_base.key);

  /* "setools/policyrep/mls.pxi":135
 *         """Get the level declaration corresponding to this sensitivity."""
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key
 *         if self._leveldecl is None:             # <<<<<<<<<<<<<<
 *             self._leveldecl = LevelDecl.factory(self.policy, symbol)
 * 
*/
  __pyx_t_1 = (((PyObject *)__pyx_v_self->_leveldecl) == Py_None);
  if (__pyx_t_1) {

    /* "setools/policyrep/mls.pxi":136
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key
 *         if self._leveldecl is None:
 *             self._leveldecl = LevelDecl.factory(self.policy, symbol)             # <<<<<<<<<<<<<<
 * 
 *         return self._leveldecl
*/
    __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_9LevelDecl_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_symbol)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF((PyObject *)__pyx_v_self->_leveldecl);
    __Pyx_DECREF((PyObject *)__pyx_v_self->_leveldecl);
    __pyx_v_self->_leveldecl = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/mls.pxi":135
 *         """Get the level declaration corresponding to this sensitivity."""
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key
 *         if self._leveldecl is None:             # <<<<<<<<<<<<<<
 *             self._leveldecl = LevelDecl.factory(self.policy, symbol)
 * 
*/
  }

  /* "setools/policyrep/mls.pxi":138
 *             self._leveldecl = LevelDecl.factory(self.policy, symbol)
 * 
 *         return self._leveldecl             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_leveldecl);
  __pyx_r = ((PyObject *)__pyx_v_self->_leveldecl);
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":132
 *         return iter(self._aliases)
 * 
 *     def level_decl(self):             # <<<<<<<<<<<<<<
 *         """Get the level declaration corresponding to this sensitivity."""
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.level_decl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":140
 *         return self._leveldecl
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             str stmt
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_15statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Sensitivity_15statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Sensitivity_15statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_15statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_14statement(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_14statement(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  PyObject *__pyx_v_stmt = 0;
  size_t __pyx_v_count;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mls.pxi":145
 *             size_t count
 * 
 *         count = len(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *         stmt = f"sensitivity {self.name}"
*/
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(3, 145, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(3, 145, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_count = __pyx_t_2;

  /* "setools/policyrep/mls.pxi":147
 *         count = len(self._aliases)
 * 
 *         stmt = f"sensitivity {self.name}"             # <<<<<<<<<<<<<<
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
*/
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_sensitivity, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stmt = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/mls.pxi":148
 * 
 *         stmt = f"sensitivity {self.name}"
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
 *         elif count == 1:
*/
  __pyx_t_4 = (__pyx_v_count > 1);
  if (__pyx_t_4) {

    /* "setools/policyrep/mls.pxi":149
 *         stmt = f"sensitivity {self.name}"
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"             # <<<<<<<<<<<<<<
 *         elif count == 1:
 *             stmt += f" alias {self._aliases[0]}"
*/
    __pyx_t_3 = __pyx_v_self->_aliases;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_alias;
    __pyx_t_5[1] = __pyx_t_1;
    __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u__7;
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, 9 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 2, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
    if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":148
 * 
 *         stmt = f"sensitivity {self.name}"
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
 *         elif count == 1:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/mls.pxi":150
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {self._aliases[0]}"
 *         stmt += ";"
*/
  __pyx_t_4 = (__pyx_v_count == 1);
  if (__pyx_t_4) {

    /* "setools/policyrep/mls.pxi":151
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
 *         elif count == 1:
 *             stmt += f" alias {self._aliases[0]}"             # <<<<<<<<<<<<<<
 *         stmt += ";"
 *         return stmt
*/
    if (unlikely(__pyx_v_self->_aliases == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(3, 151, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->_aliases, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_alias_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "setools/policyrep/mls.pxi":150
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(self._aliases)} }}"
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {self._aliases[0]}"
 *         stmt += ";"
*/
  }
  __pyx_L3:;

  /* "setools/policyrep/mls.pxi":152
 *         elif count == 1:
 *             stmt += f" alias {self._aliases[0]}"
 *         stmt += ";"             # <<<<<<<<<<<<<<
 *         return stmt
 * 
*/
  __pyx_t_3 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_mstate_global->__pyx_kp_u__2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_3));
  __pyx_t_3 = 0;

  /* "setools/policyrep/mls.pxi":153
 *             stmt += f" alias {self._aliases[0]}"
 *         stmt += ";"
 *         return stmt             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stmt);
  __pyx_r = __pyx_v_stmt;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":140
 *         return self._leveldecl
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             str stmt
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":90
 * 
 *     cdef:
 *         readonly uint32_t _value             # <<<<<<<<<<<<<<
 *         list _aliases
 *         LevelDecl _leveldecl
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_6_value_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_6_value_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_6_value___get__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_6_value___get__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity._value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_17__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Sensitivity_17__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Sensitivity_17__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_17__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_16__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_16__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._aliases, self._leveldecl, self._value, self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->_aliases);
  __Pyx_GIVEREF(__pyx_v_self->_aliases);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->_aliases) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_leveldecl);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_leveldecl);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->_leveldecl)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->__pyx_base.name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 5, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._aliases, self._leveldecl, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self._aliases, self._leveldecl, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._aliases is not None or self._leveldecl is not None or self.name is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._aliases, self._leveldecl, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._aliases is not None or self._leveldecl is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xbbab436, None), state
*/
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->_aliases != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->_leveldecl) != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self._leveldecl is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xbbab436, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._aliases is not None or self._leveldecl is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xbbab436, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xbbab436, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Sensitivity); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_196785206);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_196785206);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_196785206) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self._leveldecl is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xbbab436, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xbbab436, None), state
 *     else:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xbbab436, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Sensitivity__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Sensitivity); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_196785206);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_196785206);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_196785206) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xbbab436, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Sensitivity__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_19__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_11Sensitivity_19__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Sensitivity_19__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_19__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_18__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_18__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xbbab436, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Sensitivity__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Sensitivity__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xbbab436, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Sensitivity__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":164
 *         readonly Sensitivity sensitivity
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         lvl = str(self.sensitivity)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_1__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12BaseMLSLevel___str__(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":168
 * 
 *         # sort by policy declaration order
 *         cats = sorted(self._categories, key=lambda k: k._value)             # <<<<<<<<<<<<<<
 * 
 *         if cats:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___lambda14(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12BaseMLSLevel_7__str___lambda14 = {"lambda14", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___lambda14, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___lambda14(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_k = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda14 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_k,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 168, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 168, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lambda14", 0) < (0)) __PYX_ERR(3, 168, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda14", 1, 1, 1, i); __PYX_ERR(3, 168, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 168, __pyx_L3_error)
    }
    __pyx_v_k = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda14", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 168, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__str__.lambda14", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_lambda14(__pyx_self, __pyx_v_k);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_lambda_funcdef_lambda14(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda14", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_k, __pyx_mstate_global->__pyx_n_u_value_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__str__.lambda14", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":173
 *             # generate short category notation
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,             # <<<<<<<<<<<<<<
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
*/

static PyObject *__pyx_pf_7setools_9policyrep_114__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0) != (0)) __PYX_ERR(3, 173, __pyx_L1_error);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(3, 173, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None) != (0)) __PYX_ERR(3, 173, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___1lambda15(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12BaseMLSLevel_7__str___1lambda15 = {"lambda15", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___1lambda15, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___1lambda15(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_k = 0;
  PyObject *__pyx_v_c = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda15 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_k,&__pyx_mstate_global->__pyx_n_u_c,0};
    struct __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self);
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 173, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 173, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 173, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lambda15", 0) < (0)) __PYX_ERR(3, 173, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda15", 0, 1, 2, i); __PYX_ERR(3, 173, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 173, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 173, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
    }
    __pyx_v_k = values[0];
    __pyx_v_c = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda15", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 173, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__str__.lambda15", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_lambda15(__pyx_self, __pyx_v_k, __pyx_v_c);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_lambda_funcdef_lambda15(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda15", 0);

  /* "setools/policyrep/mls.pxi":174
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,
 *                                           c=itertools.count(): k._value - next(c)):             # <<<<<<<<<<<<<<
 *                 group = list(i)
 *                 if len(group) > 1:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_k, __pyx_mstate_global->__pyx_n_u_value_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyIter_Next(__pyx_v_c); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":173
 *             # generate short category notation
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,             # <<<<<<<<<<<<<<
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__str__.lambda15", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":164
 *         readonly Sensitivity sensitivity
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         lvl = str(self.sensitivity)
 * 
*/

static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel___str__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self) {
  PyObject *__pyx_v_lvl = NULL;
  PyObject *__pyx_v_cats = NULL;
  PyObject *__pyx_v_shortlist = NULL;
  CYTHON_UNUSED PyObject *__pyx_v__ = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_group = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  Py_ssize_t __pyx_t_11;
  PyObject *(*__pyx_t_12)(PyObject *);
  PyObject *(*__pyx_t_13)(PyObject *);
  Py_ssize_t __pyx_t_14;
  PyObject *__pyx_t_15[3];
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/mls.pxi":165
 * 
 *     def __str__(self):
 *         lvl = str(self.sensitivity)             # <<<<<<<<<<<<<<
 * 
 *         # sort by policy declaration order
*/
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self->sensitivity)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_lvl = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":168
 * 
 *         # sort by policy declaration order
 *         cats = sorted(self._categories, key=lambda k: k._value)             # <<<<<<<<<<<<<<
 * 
 *         if cats:
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12BaseMLSLevel_7__str___lambda14, 0, __pyx_mstate_global->__pyx_n_u_str___locals_lambda, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, __pyx_v_self->_categories};
    __pyx_t_5 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 168, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_key, __pyx_t_3, __pyx_t_5, __pyx_callargs+2, 0) < (0)) __PYX_ERR(3, 168, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_builtin_sorted, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 168, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_cats = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":170
 *         cats = sorted(self._categories, key=lambda k: k._value)
 * 
 *         if cats:             # <<<<<<<<<<<<<<
 *             # generate short category notation
 *             shortlist = []
*/
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_cats); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(3, 170, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "setools/policyrep/mls.pxi":172
 *         if cats:
 *             # generate short category notation
 *             shortlist = []             # <<<<<<<<<<<<<<
 *             for _, i in itertools.groupby(cats, key=lambda k,
 *                                           c=itertools.count(): k._value - next(c)):
*/
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_shortlist = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":173
 *             # generate short category notation
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,             # <<<<<<<<<<<<<<
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
*/
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 173, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_groupby); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 173, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12BaseMLSLevel_7__str___1lambda15, 0, __pyx_mstate_global->__pyx_n_u_str___locals_lambda, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 173, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_defaults)) __PYX_ERR(3, 173, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":174
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,
 *                                           c=itertools.count(): k._value - next(c)):             # <<<<<<<<<<<<<<
 *                 group = list(i)
 *                 if len(group) > 1:
*/
    __pyx_t_8 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_count); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_10))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10);
      assert(__pyx_t_8);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 174, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
    }
    __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_t_3)->arg0 = __pyx_t_7;
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_7 = 0;
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_7setools_9policyrep_114__defaults__);
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_5, __pyx_v_cats};
      __pyx_t_7 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_key, __pyx_t_3, __pyx_t_7, __pyx_callargs+2, 0) < (0)) __PYX_ERR(3, 173, __pyx_L1_error)
      __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }

    /* "setools/policyrep/mls.pxi":173
 *             # generate short category notation
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,             # <<<<<<<<<<<<<<
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
*/
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
      __pyx_t_11 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_11 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_12 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 173, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 173, __pyx_L1_error)
            #endif
            if (__pyx_t_11 >= __pyx_temp) break;
          }
          __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_11, __Pyx_ReferenceSharing_OwnStrongReference);
          ++__pyx_t_11;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 173, __pyx_L1_error)
            #endif
            if (__pyx_t_11 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_11));
          #else
          __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_11);
          #endif
          ++__pyx_t_11;
        }
        if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 173, __pyx_L1_error)
      } else {
        __pyx_t_1 = __pyx_t_12(__pyx_t_2);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(3, 173, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_1);
      if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
        PyObject* sequence = __pyx_t_1;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(3, 173, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_7);
          __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_3);
        } else {
          __pyx_t_7 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 173, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_7);
          __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 173, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_3);
        }
        #else
        __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 173, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 173, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 173, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_13 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5);
        index = 0; __pyx_t_7 = __pyx_t_13(__pyx_t_5); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_7);
        index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_3);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_5), 2) < (0)) __PYX_ERR(3, 173, __pyx_L1_error)
        __pyx_t_13 = NULL;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L7_unpacking_done;
        __pyx_L6_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_13 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(3, 173, __pyx_L1_error)
        __pyx_L7_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_7);
      __pyx_t_7 = 0;
      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/mls.pxi":175
 *             for _, i in itertools.groupby(cats, key=lambda k,
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)             # <<<<<<<<<<<<<<
 *                 if len(group) > 1:
 *                     shortlist.append(f"{group[0]}.{group[-1]}")
*/
      __pyx_t_1 = PySequence_List(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_group, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;

      /* "setools/policyrep/mls.pxi":176
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
 *                 if len(group) > 1:             # <<<<<<<<<<<<<<
 *                     shortlist.append(f"{group[0]}.{group[-1]}")
 *                 else:
*/
      __pyx_t_14 = __Pyx_PyList_GET_SIZE(__pyx_v_group); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(3, 176, __pyx_L1_error)
      __pyx_t_6 = (__pyx_t_14 > 1);
      if (__pyx_t_6) {

        /* "setools/policyrep/mls.pxi":177
 *                 group = list(i)
 *                 if len(group) > 1:
 *                     shortlist.append(f"{group[0]}.{group[-1]}")             # <<<<<<<<<<<<<<
 *                 else:
 *                     shortlist.append(str(group[0]))
*/
        __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_group, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 177, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 177, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_group, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 177, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 177, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_15[0] = __pyx_t_3;
        __pyx_t_15[1] = __pyx_mstate_global->__pyx_kp_u__14;
        __pyx_t_15[2] = __pyx_t_7;
        __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_15, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7));
        if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 177, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_shortlist, __pyx_t_1); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(3, 177, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "setools/policyrep/mls.pxi":176
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
 *                 if len(group) > 1:             # <<<<<<<<<<<<<<
 *                     shortlist.append(f"{group[0]}.{group[-1]}")
 *                 else:
*/
        goto __pyx_L8;
      }

      /* "setools/policyrep/mls.pxi":179
 *                     shortlist.append(f"{group[0]}.{group[-1]}")
 *                 else:
 *                     shortlist.append(str(group[0]))             # <<<<<<<<<<<<<<
 * 
 *             lvl += ":" + ','.join(shortlist)
*/
      /*else*/ {
        __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_group, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 179, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 179, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_shortlist, __pyx_t_7); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(3, 179, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __pyx_L8:;

      /* "setools/policyrep/mls.pxi":173
 *             # generate short category notation
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,             # <<<<<<<<<<<<<<
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
*/
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/mls.pxi":181
 *                     shortlist.append(str(group[0]))
 * 
 *             lvl += ":" + ','.join(shortlist)             # <<<<<<<<<<<<<<
 * 
 *         return lvl
*/
    __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__18, __pyx_v_shortlist); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u__13, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_lvl, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_lvl, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "setools/policyrep/mls.pxi":170
 *         cats = sorted(self._categories, key=lambda k: k._value)
 * 
 *         if cats:             # <<<<<<<<<<<<<<
 *             # generate short category notation
 *             shortlist = []
*/
  }

  /* "setools/policyrep/mls.pxi":183
 *             lvl += ":" + ','.join(shortlist)
 * 
 *         return lvl             # <<<<<<<<<<<<<<
 * 
 *     def categories(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_lvl);
  __pyx_r = __pyx_v_lvl;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":164
 *         readonly Sensitivity sensitivity
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         lvl = str(self.sensitivity)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_lvl);
  __Pyx_XDECREF(__pyx_v_cats);
  __Pyx_XDECREF(__pyx_v_shortlist);
  __Pyx_XDECREF(__pyx_v__);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_group);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":185
 *         return lvl
 * 
 *     def categories(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generator that yields all individual categories for this level.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_3categories(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_12BaseMLSLevel_2categories, "\n        Generator that yields all individual categories for this level.\n        All categories are yielded, not a compact notation such as\n        c0.c255\n        ");
static PyMethodDef __pyx_mdef_7setools_9policyrep_12BaseMLSLevel_3categories = {"categories", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_3categories, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_12BaseMLSLevel_2categories};
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_3categories(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("categories (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("categories", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("categories", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12BaseMLSLevel_2categories(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_2categories(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("categories", 0);

  /* "setools/policyrep/mls.pxi":191
 *         c0.c255
 *         """
 *         return iter(self._categories)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_categories;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":185
 *         return lvl
 * 
 *     def categories(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generator that yields all individual categories for this level.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.categories", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":162
 *     cdef:
 *         set _categories
 *         readonly Sensitivity sensitivity             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_11sensitivity_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_11sensitivity_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12BaseMLSLevel_11sensitivity___get__(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_11sensitivity___get__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->sensitivity);
  __pyx_r = ((PyObject *)__pyx_v_self->sensitivity);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12BaseMLSLevel_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12BaseMLSLevel_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_categories);
  __Pyx_GIVEREF(__pyx_v_self->_categories);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_categories) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->sensitivity);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->sensitivity);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->sensitivity)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x18b60c0, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_categories != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->sensitivity) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x18b60c0, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x18b60c0, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x18b60c0, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseMLSLevel); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_25911488);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_25911488);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_25911488) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x18b60c0, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x18b60c0, None), state
 *     else:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x18b60c0, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseMLSLevel__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseMLSLevel); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_25911488);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_25911488);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_25911488) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseMLSLevel__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12BaseMLSLevel_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12BaseMLSLevel_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseMLSLevel__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseMLSLevel__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseMLSLevel__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":202
 *     """
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline LevelDecl factory(SELinuxPolicy policy, sepol.level_datum_t *symbol):
 *         """Factory function for creating LevelDecl objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_f_7setools_9policyrep_9LevelDecl_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, level_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_l = 0;
  struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":206
 *         """Factory function for creating LevelDecl objects."""
 *         cdef LevelDecl l
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  __pyx_t_1 = (!__pyx_v_policy->mls);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":207
 *         cdef LevelDecl l
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 207, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":206
 *         """Factory function for creating LevelDecl objects."""
 *         cdef LevelDecl l
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  }

  /* "setools/policyrep/mls.pxi":209
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":210
 * 
 *         try:
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             l = LevelDecl.__new__(LevelDecl)
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__leveldecl_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 210, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 210, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDecl))))) __PYX_ERR(3, 210, __pyx_L4_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_t_6);
      __pyx_t_6 = 0;
      goto __pyx_L8_try_return;

      /* "setools/policyrep/mls.pxi":209
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/mls.pxi":211
 *         try:
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             l = LevelDecl.__new__(LevelDecl)
 *             _leveldecl_cache[policy][<uintptr_t>symbol] = l
*/
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_7) {
      __Pyx_AddTraceback("setools.policyrep.LevelDecl.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_8) < 0) __PYX_ERR(3, 211, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_8);

      /* "setools/policyrep/mls.pxi":212
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             l = LevelDecl.__new__(LevelDecl)             # <<<<<<<<<<<<<<
 *             _leveldecl_cache[policy][<uintptr_t>symbol] = l
 *             l.policy = policy
*/
      __pyx_t_9 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_LevelDecl(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDecl), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 212, __pyx_L6_except_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_9);
      __pyx_v_l = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":213
 *         except KeyError:
 *             l = LevelDecl.__new__(LevelDecl)
 *             _leveldecl_cache[policy][<uintptr_t>symbol] = l             # <<<<<<<<<<<<<<
 *             l.policy = policy
 *             l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.level.cat))
*/
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__leveldecl_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 213, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely((__Pyx_SetItemInt(__pyx_t_9, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_l), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(3, 213, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":214
 *             l = LevelDecl.__new__(LevelDecl)
 *             _leveldecl_cache[policy][<uintptr_t>symbol] = l
 *             l.policy = policy             # <<<<<<<<<<<<<<
 *             l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.level.cat))
 *             # the datum for levels is also used for Sensitivity objects
*/
      __Pyx_INCREF((PyObject *)__pyx_v_policy);
      __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
      __Pyx_GOTREF((PyObject *)__pyx_v_l->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_v_l->__pyx_base.__pyx_base.policy);
      __pyx_v_l->__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/mls.pxi":215
 *             _leveldecl_cache[policy][<uintptr_t>symbol] = l
 *             l.policy = policy
 *             l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.level.cat))             # <<<<<<<<<<<<<<
 *             # the datum for levels is also used for Sensitivity objects
 *             l.sensitivity = Sensitivity.factory(policy, symbol)
*/
      __pyx_t_9 = __pyx_f_7setools_9policyrep_23CategoryEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->level->cat)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 215, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = PySet_New(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 215, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GIVEREF(__pyx_t_10);
      __Pyx_GOTREF(__pyx_v_l->__pyx_base._categories);
      __Pyx_DECREF(__pyx_v_l->__pyx_base._categories);
      __pyx_v_l->__pyx_base._categories = ((PyObject*)__pyx_t_10);
      __pyx_t_10 = 0;

      /* "setools/policyrep/mls.pxi":217
 *             l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.level.cat))
 *             # the datum for levels is also used for Sensitivity objects
 *             l.sensitivity = Sensitivity.factory(policy, symbol)             # <<<<<<<<<<<<<<
 *             return l
 * 
*/
      __pyx_t_10 = ((PyObject *)__pyx_f_7setools_9policyrep_11Sensitivity_factory(__pyx_v_policy, __pyx_v_symbol)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 217, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_GIVEREF(__pyx_t_10);
      __Pyx_GOTREF((PyObject *)__pyx_v_l->__pyx_base.sensitivity);
      __Pyx_DECREF((PyObject *)__pyx_v_l->__pyx_base.sensitivity);
      __pyx_v_l->__pyx_base.sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_10);
      __pyx_t_10 = 0;

      /* "setools/policyrep/mls.pxi":218
 *             # the datum for levels is also used for Sensitivity objects
 *             l.sensitivity = Sensitivity.factory(policy, symbol)
 *             return l             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __Pyx_INCREF((PyObject *)__pyx_v_l);
      __pyx_r = __pyx_v_l;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;

    /* "setools/policyrep/mls.pxi":209
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":202
 *     """
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline LevelDecl factory(SELinuxPolicy policy, sepol.level_datum_t *symbol):
 *         """Factory function for creating LevelDecl objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_l);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":220
 *             return l
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.sensitivity)
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_9LevelDecl_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_9LevelDecl_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl___hash__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_9LevelDecl___hash__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mls.pxi":221
 * 
 *     def __hash__(self):
 *         return hash(self.sensitivity)             # <<<<<<<<<<<<<<
 * 
 *     # below comparisons are only based on sensitivity
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.sensitivity);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(3, 221, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":220
 *             return l
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.sensitivity)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":229
 *     # be compared to a Level instance.
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_2__eq__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_2__eq__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/mls.pxi":230
 * 
 *     def __eq__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level); 
    __pyx_t_2 = (!__pyx_t_1);
    if (unlikely(!__pyx_t_2)) {
      __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), __pyx_mstate_global->__pyx_kp_u_Levels_cannot_be_compared_to_lev, 0, 0);
      __PYX_ERR(3, 230, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(3, 230, __pyx_L1_error)
  #endif

  /* "setools/policyrep/mls.pxi":232
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return self.sensitivity == other.sensitivity
 *         except AttributeError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":233
 * 
 *         try:
 *             return self.sensitivity == other.sensitivity             # <<<<<<<<<<<<<<
 *         except AttributeError:
 *             return str(self) == str(other)
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 233, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 233, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/mls.pxi":232
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return self.sensitivity == other.sensitivity
 *         except AttributeError:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "setools/policyrep/mls.pxi":234
 *         try:
 *             return self.sensitivity == other.sensitivity
 *         except AttributeError:             # <<<<<<<<<<<<<<
 *             return str(self) == str(other)
 * 
*/
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError))));
    if (__pyx_t_8) {
      __Pyx_AddTraceback("setools.policyrep.LevelDecl.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_9) < 0) __PYX_ERR(3, 234, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_9);

      /* "setools/policyrep/mls.pxi":235
 *             return self.sensitivity == other.sensitivity
 *         except AttributeError:
 *             return str(self) == str(other)             # <<<<<<<<<<<<<<
 * 
 *     def __ge__(self, other):
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_10 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 235, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 235, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_10, __pyx_t_11, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(3, 235, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 235, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_r = __pyx_t_11;
      __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/mls.pxi":232
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return self.sensitivity == other.sensitivity
 *         except AttributeError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":229
 *     # be compared to a Level instance.
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":237
 *             return str(self) == str(other)
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity >= other.sensitivity
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_5__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_5__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__ge__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_4__ge__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_4__ge__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ge__", 0);

  /* "setools/policyrep/mls.pxi":238
 * 
 *     def __ge__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"             # <<<<<<<<<<<<<<
 *         return self.sensitivity >= other.sensitivity
 * 
*/
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level); 
    __pyx_t_2 = (!__pyx_t_1);
    if (unlikely(!__pyx_t_2)) {
      __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), __pyx_mstate_global->__pyx_kp_u_Levels_cannot_be_compared_to_lev, 0, 0);
      __PYX_ERR(3, 238, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(3, 238, __pyx_L1_error)
  #endif

  /* "setools/policyrep/mls.pxi":239
 *     def __ge__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity >= other.sensitivity             # <<<<<<<<<<<<<<
 * 
 *     def __gt__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 239, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":237
 *             return str(self) == str(other)
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity >= other.sensitivity
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__ge__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":241
 *         return self.sensitivity >= other.sensitivity
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity > other.sensitivity
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_7__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_7__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__gt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_6__gt__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_6__gt__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__gt__", 0);

  /* "setools/policyrep/mls.pxi":242
 * 
 *     def __gt__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"             # <<<<<<<<<<<<<<
 *         return self.sensitivity > other.sensitivity
 * 
*/
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level); 
    __pyx_t_2 = (!__pyx_t_1);
    if (unlikely(!__pyx_t_2)) {
      __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), __pyx_mstate_global->__pyx_kp_u_Levels_cannot_be_compared_to_lev, 0, 0);
      __PYX_ERR(3, 242, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(3, 242, __pyx_L1_error)
  #endif

  /* "setools/policyrep/mls.pxi":243
 *     def __gt__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity > other.sensitivity             # <<<<<<<<<<<<<<
 * 
 *     def __le__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 243, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":241
 *         return self.sensitivity >= other.sensitivity
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity > other.sensitivity
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__gt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":245
 *         return self.sensitivity > other.sensitivity
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity <= other.sensitivity
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_9__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_9__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__le__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_8__le__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_8__le__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__le__", 0);

  /* "setools/policyrep/mls.pxi":246
 * 
 *     def __le__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"             # <<<<<<<<<<<<<<
 *         return self.sensitivity <= other.sensitivity
 * 
*/
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level); 
    __pyx_t_2 = (!__pyx_t_1);
    if (unlikely(!__pyx_t_2)) {
      __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), __pyx_mstate_global->__pyx_kp_u_Levels_cannot_be_compared_to_lev, 0, 0);
      __PYX_ERR(3, 246, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(3, 246, __pyx_L1_error)
  #endif

  /* "setools/policyrep/mls.pxi":247
 *     def __le__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity <= other.sensitivity             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_3, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":245
 *         return self.sensitivity > other.sensitivity
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity <= other.sensitivity
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__le__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":249
 *         return self.sensitivity <= other.sensitivity
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity < other.sensitivity
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_10__lt__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_10__lt__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/mls.pxi":250
 * 
 *     def __lt__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"             # <<<<<<<<<<<<<<
 *         return self.sensitivity < other.sensitivity
 * 
*/
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level); 
    __pyx_t_2 = (!__pyx_t_1);
    if (unlikely(!__pyx_t_2)) {
      __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), __pyx_mstate_global->__pyx_kp_u_Levels_cannot_be_compared_to_lev, 0, 0);
      __PYX_ERR(3, 250, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(3, 250, __pyx_L1_error)
  #endif

  /* "setools/policyrep/mls.pxi":251
 *     def __lt__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity < other.sensitivity             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 251, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":249
 *         return self.sensitivity <= other.sensitivity
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity < other.sensitivity
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":253
 *         return self.sensitivity < other.sensitivity
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"level {self};"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_13statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9LevelDecl_13statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9LevelDecl_13statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_13statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_12statement(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_12statement(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2[3];
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mls.pxi":254
 * 
 *     def statement(self):
 *         return f"level {self};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2[0] = __pyx_mstate_global->__pyx_kp_u_level;
  __pyx_t_2[1] = __pyx_t_1;
  __pyx_t_2[2] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, 6 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":253
 *         return self.sensitivity < other.sensitivity
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"level {self};"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_15__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9LevelDecl_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9LevelDecl_15__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_15__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_14__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_14__reduce_cython__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->__pyx_base._categories);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base._categories);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->__pyx_base._categories) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.sensitivity);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.sensitivity);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.sensitivity)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x18b60c0, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->__pyx_base._categories != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.sensitivity) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x18b60c0, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x18b60c0, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x18b60c0, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_LevelDecl); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_25911488);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_25911488);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_25911488) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x18b60c0, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x18b60c0, None), state
 *     else:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x18b60c0, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_LevelDecl__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_LevelDecl); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_25911488);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_25911488);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_25911488) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_LevelDecl__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_17__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9LevelDecl_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9LevelDecl_17__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_17__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_16__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_16__setstate_cython__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_LevelDecl__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_LevelDecl__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_LevelDecl__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":266
 *     """
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Level factory(SELinuxPolicy policy, sepol.mls_level_t *symbol):
 *         """Factory function for creating Level objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, mls_level_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_l = 0;
  struct __pyx_obj_7setools_9policyrep_Level *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  level_datum_t *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":269
 *     cdef inline Level factory(SELinuxPolicy policy, sepol.mls_level_t *symbol):
 *         """Factory function for creating Level objects."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  __pyx_t_1 = (!__pyx_v_policy->mls);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":270
 *         """Factory function for creating Level objects."""
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         cdef Level l = Level.__new__(Level)
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 270, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 270, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":269
 *     cdef inline Level factory(SELinuxPolicy policy, sepol.mls_level_t *symbol):
 *         """Factory function for creating Level objects."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  }

  /* "setools/policyrep/mls.pxi":272
 *             raise MLSDisabled
 * 
 *         cdef Level l = Level.__new__(Level)             # <<<<<<<<<<<<<<
 *         l.policy = policy
 *         l.sensitivity = Sensitivity.factory(policy, policy.level_value_to_datum(symbol.sens - 1))
*/
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Level(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 272, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __pyx_v_l = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":273
 * 
 *         cdef Level l = Level.__new__(Level)
 *         l.policy = policy             # <<<<<<<<<<<<<<
 *         l.sensitivity = Sensitivity.factory(policy, policy.level_value_to_datum(symbol.sens - 1))
 *         l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.cat))
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_l->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_l->__pyx_base.__pyx_base.policy);
  __pyx_v_l->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":274
 *         cdef Level l = Level.__new__(Level)
 *         l.policy = policy
 *         l.sensitivity = Sensitivity.factory(policy, policy.level_value_to_datum(symbol.sens - 1))             # <<<<<<<<<<<<<<
 *         l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.cat))
 *         return l
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->sens - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 274, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_11Sensitivity_factory(__pyx_v_policy, __pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_l->__pyx_base.sensitivity);
  __Pyx_DECREF((PyObject *)__pyx_v_l->__pyx_base.sensitivity);
  __pyx_v_l->__pyx_base.sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":275
 *         l.policy = policy
 *         l.sensitivity = Sensitivity.factory(policy, policy.level_value_to_datum(symbol.sens - 1))
 *         l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.cat))             # <<<<<<<<<<<<<<
 *         return l
 * 
*/
  __pyx_t_2 = __pyx_f_7setools_9policyrep_23CategoryEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->cat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PySet_New(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_l->__pyx_base._categories);
  __Pyx_DECREF(__pyx_v_l->__pyx_base._categories);
  __pyx_v_l->__pyx_base._categories = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "setools/policyrep/mls.pxi":276
 *         l.sensitivity = Sensitivity.factory(policy, policy.level_value_to_datum(symbol.sens - 1))
 *         l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.cat))
 *         return l             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_l);
  __pyx_r = __pyx_v_l;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":266
 *     """
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Level factory(SELinuxPolicy policy, sepol.mls_level_t *symbol):
 *         """Factory function for creating Level objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Level.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_l);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_5Level_19factory_from_string_2generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/mls.pxi":337
 *             raise InvalidLevel(
 *                 f"{name} is not a valid level "
 *                 f"(category {', '.join(str(c) for c in invalid_cats)} is not associated "             # <<<<<<<<<<<<<<
 *                 f"with sensitivity {l.sensitivity})")
 * 
*/

static PyObject *__pyx_pf_7setools_9policyrep_5Level_19factory_from_string_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_7_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(3, 337, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_5Level_19factory_from_string_2generator19, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_Level_factory_from_string_locals, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(3, 337, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Level.factory_from_string.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_5Level_19factory_from_string_2generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 337, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(3, 337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(3, 337, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 337, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 337, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 337, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 337, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(3, 337, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_cur_scope->__pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_4))) __PYX_ERR(3, 337, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":278
 *         return l
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Level factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Level objects by a string."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_name) {
  struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_l = 0;
  PyObject *__pyx_v_sens_split = 0;
  PyObject *__pyx_v_sens = 0;
  PyObject *__pyx_v_cats = 0;
  PyObject *__pyx_v_catrange = 0;
  PyObject *__pyx_v_group = 0;
  PyObject *__pyx_v_ex = NULL;
  PyObject *__pyx_v_invalid_cats = NULL;
  PyObject *__pyx_gb_7setools_9policyrep_5Level_19factory_from_string_2generator19 = 0;
  struct __pyx_obj_7setools_9policyrep_Level *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15[4];
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  char const *__pyx_t_18;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  PyObject *__pyx_t_24 = NULL;
  Py_ssize_t __pyx_t_25;
  Py_ssize_t __pyx_t_26;
  PyObject *__pyx_t_27 = NULL;
  char const *__pyx_t_28;
  PyObject *__pyx_t_29 = NULL;
  PyObject *__pyx_t_30 = NULL;
  PyObject *__pyx_t_31 = NULL;
  int __pyx_t_32;
  char const *__pyx_t_33;
  int __pyx_t_34;
  PyObject *__pyx_t_35[6];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory_from_string", 0);

  /* "setools/policyrep/mls.pxi":281
 *     cdef inline Level factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Level objects by a string."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  __pyx_t_1 = (!__pyx_v_policy->mls);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":282
 *         """Factory function variant for constructing Level objects by a string."""
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         cdef:
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 282, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":281
 *     cdef inline Level factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Level objects by a string."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  }

  /* "setools/policyrep/mls.pxi":285
 * 
 *         cdef:
 *             Level l = Level.__new__(Level)             # <<<<<<<<<<<<<<
 *             list sens_split = name.split(":")
 *             str sens = sens_split[0]
*/
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Level(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 285, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __pyx_v_l = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":286
 *         cdef:
 *             Level l = Level.__new__(Level)
 *             list sens_split = name.split(":")             # <<<<<<<<<<<<<<
 *             str sens = sens_split[0]
 *             Sensitivity s
*/
  if (unlikely(__pyx_v_name == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "split");
    __PYX_ERR(3, 286, __pyx_L1_error)
  }
  __pyx_t_2 = PyUnicode_Split(__pyx_v_name, __pyx_mstate_global->__pyx_kp_u__13, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_sens_split = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":287
 *             Level l = Level.__new__(Level)
 *             list sens_split = name.split(":")
 *             str sens = sens_split[0]             # <<<<<<<<<<<<<<
 *             Sensitivity s
 *             list c
*/
  __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_sens_split, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(3, 287, __pyx_L1_error)
  __pyx_v_sens = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":294
 *             str group
 * 
 *         l.policy = policy             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_l->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_l->__pyx_base.__pyx_base.policy);
  __pyx_v_l->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":296
 *         l.policy = policy
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":297
 * 
 *         try:
 *             l.sensitivity = policy.lookup_sensitivity(sens)             # <<<<<<<<<<<<<<
 *         except InvalidSensitivity as ex:
 *             raise InvalidLevel(
*/
      __pyx_t_6 = ((PyObject *)__pyx_v_policy);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_7 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_sens};
        __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lookup_sensitivity, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 297, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity))))) __PYX_ERR(3, 297, __pyx_L4_error)
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_v_l->__pyx_base.sensitivity);
      __Pyx_DECREF((PyObject *)__pyx_v_l->__pyx_base.sensitivity);
      __pyx_v_l->__pyx_base.sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/mls.pxi":296
 *         l.policy = policy
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:
*/
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/mls.pxi":298
 *         try:
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidLevel(
 *                 f"{name} is not a valid level ({sens} is not a valid sensitivity)") from ex
*/
    __Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_6, &__pyx_t_8);
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_InvalidSensitivity); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 298, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_9);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_ErrRestore(__pyx_t_2, __pyx_t_6, __pyx_t_8);
    __pyx_t_2 = 0; __pyx_t_6 = 0; __pyx_t_8 = 0;
    if (__pyx_t_10) {
      __Pyx_AddTraceback("setools.policyrep.Level.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(3, 298, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_ex = __pyx_t_6;
      /*try:*/ {

        /* "setools/policyrep/mls.pxi":299
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:
 *             raise InvalidLevel(             # <<<<<<<<<<<<<<
 *                 f"{name} is not a valid level ({sens} is not a valid sensitivity)") from ex
 * 
*/
        __pyx_t_11 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_InvalidLevel); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 299, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_12);

        /* "setools/policyrep/mls.pxi":300
 *         except InvalidSensitivity as ex:
 *             raise InvalidLevel(
 *                 f"{name} is not a valid level ({sens} is not a valid sensitivity)") from ex             # <<<<<<<<<<<<<<
 * 
 *         l._categories = set()
*/
        __pyx_t_13 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 300, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_14 = __Pyx_PyUnicode_Unicode(__pyx_v_sens); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 300, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_15[0] = __pyx_t_13;
        __pyx_t_15[1] = __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_level;
        __pyx_t_15[2] = __pyx_t_14;
        __pyx_t_15[3] = __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_sensitivity;
        __pyx_t_16 = __Pyx_PyUnicode_Join(__pyx_t_15, 4, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 23 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14) + 28, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14));
        if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 300, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_7 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12);
          assert(__pyx_t_11);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
          __pyx_t_7 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_16};
          __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 299, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_9);
        }
        __Pyx_Raise(__pyx_t_9, 0, 0, __pyx_v_ex);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __PYX_ERR(3, 299, __pyx_L15_error)
      }

      /* "setools/policyrep/mls.pxi":298
 *         try:
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidLevel(
 *                 f"{name} is not a valid level ({sens} is not a valid sensitivity)") from ex
*/
      /*finally:*/ {
        __pyx_L15_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24);
          if ( unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_23);
          __Pyx_XGOTREF(__pyx_t_24);
          __pyx_t_10 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_22);
          __Pyx_XGIVEREF(__pyx_t_23);
          __Pyx_XGIVEREF(__pyx_t_24);
          __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24);
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_ErrRestore(__pyx_t_19, __pyx_t_20, __pyx_t_21);
          __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0;
          __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_18;
          goto __pyx_L6_except_error;
        }
      }
    }
    goto __pyx_L6_except_error;

    /* "setools/policyrep/mls.pxi":296
 *         l.policy = policy
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L9_try_end:;
  }

  /* "setools/policyrep/mls.pxi":302
 *                 f"{name} is not a valid level ({sens} is not a valid sensitivity)") from ex
 * 
 *         l._categories = set()             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
  __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_l->__pyx_base._categories);
  __Pyx_DECREF(__pyx_v_l->__pyx_base._categories);
  __pyx_v_l->__pyx_base._categories = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":304
 *         l._categories = set()
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             cats = sens_split[1]
 *         except IndexError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_4, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":305
 * 
 *         try:
 *             cats = sens_split[1]             # <<<<<<<<<<<<<<
 *         except IndexError:
 *             pass
*/
      __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_sens_split, 1, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 305, __pyx_L21_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(3, 305, __pyx_L21_error)
      __pyx_v_cats = ((PyObject*)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/mls.pxi":304
 *         l._categories = set()
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             cats = sens_split[1]
 *         except IndexError:
*/
    }

    /* "setools/policyrep/mls.pxi":309
 *             pass
 *         else:
 *             for group in cats.split(","):             # <<<<<<<<<<<<<<
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:
*/
    /*else:*/ {
      if (unlikely(__pyx_v_cats == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "split");
        __PYX_ERR(3, 309, __pyx_L23_except_error)
      }
      __pyx_t_2 = PyUnicode_Split(__pyx_v_cats, __pyx_mstate_global->__pyx_kp_u__18, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 309, __pyx_L23_except_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6);
      __pyx_t_25 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 309, __pyx_L23_except_error)
          #endif
          if (__pyx_t_25 >= __pyx_temp) break;
        }
        __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_6, __pyx_t_25, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_25;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 309, __pyx_L23_except_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(3, 309, __pyx_L23_except_error)
        __Pyx_XDECREF_SET(__pyx_v_group, ((PyObject*)__pyx_t_2));
        __pyx_t_2 = 0;

        /* "setools/policyrep/mls.pxi":310
 *         else:
 *             for group in cats.split(","):
 *                 catrange = group.split(".")             # <<<<<<<<<<<<<<
 *                 if len(catrange) == 2:
 *                     try:
*/
        if (unlikely(__pyx_v_group == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "split");
          __PYX_ERR(3, 310, __pyx_L23_except_error)
        }
        __pyx_t_2 = PyUnicode_Split(__pyx_v_group, __pyx_mstate_global->__pyx_kp_u__14, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 310, __pyx_L23_except_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_XDECREF_SET(__pyx_v_catrange, ((PyObject*)__pyx_t_2));
        __pyx_t_2 = 0;

        /* "setools/policyrep/mls.pxi":311
 *             for group in cats.split(","):
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:             # <<<<<<<<<<<<<<
 *                     try:
 *                         l._categories.update(expand_cat_range(policy,
*/
        __pyx_t_26 = __Pyx_PyList_GET_SIZE(__pyx_v_catrange); if (unlikely(__pyx_t_26 == ((Py_ssize_t)-1))) __PYX_ERR(3, 311, __pyx_L23_except_error)
        __pyx_t_1 = (__pyx_t_26 == 2);
        if (__pyx_t_1) {

          /* "setools/policyrep/mls.pxi":312
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.update(expand_cat_range(policy,
 *                                                               policy.lookup_category(catrange[0]),
*/
          {
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __Pyx_ExceptionSave(&__pyx_t_24, &__pyx_t_23, &__pyx_t_22);
            __Pyx_XGOTREF(__pyx_t_24);
            __Pyx_XGOTREF(__pyx_t_23);
            __Pyx_XGOTREF(__pyx_t_22);
            /*try:*/ {

              /* "setools/policyrep/mls.pxi":313
 *                 if len(catrange) == 2:
 *                     try:
 *                         l._categories.update(expand_cat_range(policy,             # <<<<<<<<<<<<<<
 *                                                               policy.lookup_category(catrange[0]),
 *                                                               policy.lookup_category(catrange[1])))
*/
              __pyx_t_8 = __pyx_v_l->__pyx_base._categories;
              __Pyx_INCREF(__pyx_t_8);

              /* "setools/policyrep/mls.pxi":314
 *                     try:
 *                         l._categories.update(expand_cat_range(policy,
 *                                                               policy.lookup_category(catrange[0]),             # <<<<<<<<<<<<<<
 *                                                               policy.lookup_category(catrange[1])))
 *                     except InvalidCategory as ex:
*/
              __pyx_t_12 = ((PyObject *)__pyx_v_policy);
              __Pyx_INCREF(__pyx_t_12);
              __pyx_t_16 = __Pyx_GetItemInt_List(__pyx_v_catrange, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 314, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_7 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_16};
                __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lookup_category, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 314, __pyx_L30_error)
                __Pyx_GOTREF(__pyx_t_9);
              }
              if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Category))))) __PYX_ERR(3, 314, __pyx_L30_error)

              /* "setools/policyrep/mls.pxi":315
 *                         l._categories.update(expand_cat_range(policy,
 *                                                               policy.lookup_category(catrange[0]),
 *                                                               policy.lookup_category(catrange[1])))             # <<<<<<<<<<<<<<
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel(
*/
              __pyx_t_12 = ((PyObject *)__pyx_v_policy);
              __Pyx_INCREF(__pyx_t_12);
              __pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_catrange, 1, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 315, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_7 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11};
                __pyx_t_16 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lookup_category, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 315, __pyx_L30_error)
                __Pyx_GOTREF(__pyx_t_16);
              }
              if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Category))))) __PYX_ERR(3, 315, __pyx_L30_error)

              /* "setools/policyrep/mls.pxi":313
 *                 if len(catrange) == 2:
 *                     try:
 *                         l._categories.update(expand_cat_range(policy,             # <<<<<<<<<<<<<<
 *                                                               policy.lookup_category(catrange[0]),
 *                                                               policy.lookup_category(catrange[1])))
*/
              __pyx_t_11 = __pyx_f_7setools_9policyrep_expand_cat_range(__pyx_v_policy, ((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_t_9), ((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_t_16)); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 313, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              __pyx_t_7 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_11};
                __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 313, __pyx_L30_error)
                __Pyx_GOTREF(__pyx_t_2);
              }
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

              /* "setools/policyrep/mls.pxi":312
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.update(expand_cat_range(policy,
 *                                                               policy.lookup_category(catrange[0]),
*/
            }
            __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
            __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
            goto __pyx_L37_try_end;
            __pyx_L30_error:;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

            /* "setools/policyrep/mls.pxi":316
 *                                                               policy.lookup_category(catrange[0]),
 *                                                               policy.lookup_category(catrange[1])))
 *                     except InvalidCategory as ex:             # <<<<<<<<<<<<<<
 *                         raise InvalidLevel(
 *                             f"{name} is not a valid level ({group} is not a valid category range)"
*/
            __Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_11, &__pyx_t_8);
            __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_InvalidCategory); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 316, __pyx_L32_except_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_17 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_16);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_ErrRestore(__pyx_t_2, __pyx_t_11, __pyx_t_8);
            __pyx_t_2 = 0; __pyx_t_11 = 0; __pyx_t_8 = 0;
            if (__pyx_t_17) {
              __Pyx_AddTraceback("setools.policyrep.Level.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_11, &__pyx_t_2) < 0) __PYX_ERR(3, 316, __pyx_L32_except_error)
              __Pyx_XGOTREF(__pyx_t_8);
              __Pyx_XGOTREF(__pyx_t_11);
              __Pyx_XGOTREF(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_11);
              __pyx_v_ex = __pyx_t_11;
              /*try:*/ {

                /* "setools/policyrep/mls.pxi":317
 *                                                               policy.lookup_category(catrange[1])))
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel(             # <<<<<<<<<<<<<<
 *                             f"{name} is not a valid level ({group} is not a valid category range)"
 *                             ) from ex
*/
                __pyx_t_9 = NULL;
                __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_InvalidLevel); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 317, __pyx_L43_error)
                __Pyx_GOTREF(__pyx_t_12);

                /* "setools/policyrep/mls.pxi":318
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel(
 *                             f"{name} is not a valid level ({group} is not a valid category range)"             # <<<<<<<<<<<<<<
 *                             ) from ex
 * 
*/
                __pyx_t_14 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 318, __pyx_L43_error)
                __Pyx_GOTREF(__pyx_t_14);
                __pyx_t_13 = __Pyx_PyUnicode_Unicode(__pyx_v_group); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 318, __pyx_L43_error)
                __Pyx_GOTREF(__pyx_t_13);
                __pyx_t_15[0] = __pyx_t_14;
                __pyx_t_15[1] = __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_level;
                __pyx_t_15[2] = __pyx_t_13;
                __pyx_t_15[3] = __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_category_range;
                __pyx_t_27 = __Pyx_PyUnicode_Join(__pyx_t_15, 4, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14) + 23 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 31, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13));
                if (unlikely(!__pyx_t_27)) __PYX_ERR(3, 318, __pyx_L43_error)
                __Pyx_GOTREF(__pyx_t_27);
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __pyx_t_7 = 1;
                #if CYTHON_UNPACK_METHODS
                if (unlikely(PyMethod_Check(__pyx_t_12))) {
                  __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_12);
                  assert(__pyx_t_9);
                  PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
                  __Pyx_INCREF(__pyx_t_9);
                  __Pyx_INCREF(__pyx__function);
                  __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
                  __pyx_t_7 = 0;
                }
                #endif
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_27};
                  __pyx_t_16 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
                  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                  if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 317, __pyx_L43_error)
                  __Pyx_GOTREF(__pyx_t_16);
                }

                /* "setools/policyrep/mls.pxi":319
 *                         raise InvalidLevel(
 *                             f"{name} is not a valid level ({group} is not a valid category range)"
 *                             ) from ex             # <<<<<<<<<<<<<<
 * 
 *                 elif len(catrange) == 1:
*/
                __Pyx_Raise(__pyx_t_16, 0, 0, __pyx_v_ex);
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __PYX_ERR(3, 317, __pyx_L43_error)
              }

              /* "setools/policyrep/mls.pxi":316
 *                                                               policy.lookup_category(catrange[0]),
 *                                                               policy.lookup_category(catrange[1])))
 *                     except InvalidCategory as ex:             # <<<<<<<<<<<<<<
 *                         raise InvalidLevel(
 *                             f"{name} is not a valid level ({group} is not a valid category range)"
*/
              /*finally:*/ {
                __pyx_L43_error:;
                /*exception exit:*/{
                  __Pyx_PyThreadState_declare
                  __Pyx_PyThreadState_assign
                  __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0;
                  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                  __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
                  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                   __Pyx_ExceptionSwap(&__pyx_t_29, &__pyx_t_30, &__pyx_t_31);
                  if ( unlikely(__Pyx_GetException(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19);
                  __Pyx_XGOTREF(__pyx_t_21);
                  __Pyx_XGOTREF(__pyx_t_20);
                  __Pyx_XGOTREF(__pyx_t_19);
                  __Pyx_XGOTREF(__pyx_t_29);
                  __Pyx_XGOTREF(__pyx_t_30);
                  __Pyx_XGOTREF(__pyx_t_31);
                  __pyx_t_17 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_28 = __pyx_filename;
                  {
                    __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
                  }
                  __Pyx_XGIVEREF(__pyx_t_29);
                  __Pyx_XGIVEREF(__pyx_t_30);
                  __Pyx_XGIVEREF(__pyx_t_31);
                  __Pyx_ExceptionReset(__pyx_t_29, __pyx_t_30, __pyx_t_31);
                  __Pyx_XGIVEREF(__pyx_t_21);
                  __Pyx_XGIVEREF(__pyx_t_20);
                  __Pyx_XGIVEREF(__pyx_t_19);
                  __Pyx_ErrRestore(__pyx_t_21, __pyx_t_20, __pyx_t_19);
                  __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0;
                  __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_28;
                  goto __pyx_L32_except_error;
                }
              }
            }
            goto __pyx_L32_except_error;

            /* "setools/policyrep/mls.pxi":312
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.update(expand_cat_range(policy,
 *                                                               policy.lookup_category(catrange[0]),
*/
            __pyx_L32_except_error:;
            __Pyx_XGIVEREF(__pyx_t_24);
            __Pyx_XGIVEREF(__pyx_t_23);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_22);
            goto __pyx_L23_except_error;
            __pyx_L37_try_end:;
          }

          /* "setools/policyrep/mls.pxi":311
 *             for group in cats.split(","):
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:             # <<<<<<<<<<<<<<
 *                     try:
 *                         l._categories.update(expand_cat_range(policy,
*/
          goto __pyx_L29;
        }

        /* "setools/policyrep/mls.pxi":321
 *                             ) from ex
 * 
 *                 elif len(catrange) == 1:             # <<<<<<<<<<<<<<
 *                     try:
 *                         l._categories.add(policy.lookup_category(catrange[0]))
*/
        __pyx_t_26 = __Pyx_PyList_GET_SIZE(__pyx_v_catrange); if (unlikely(__pyx_t_26 == ((Py_ssize_t)-1))) __PYX_ERR(3, 321, __pyx_L23_except_error)
        __pyx_t_1 = (__pyx_t_26 == 1);
        if (likely(__pyx_t_1)) {

          /* "setools/policyrep/mls.pxi":322
 * 
 *                 elif len(catrange) == 1:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:
*/
          {
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __Pyx_ExceptionSave(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24);
            __Pyx_XGOTREF(__pyx_t_22);
            __Pyx_XGOTREF(__pyx_t_23);
            __Pyx_XGOTREF(__pyx_t_24);
            /*try:*/ {

              /* "setools/policyrep/mls.pxi":323
 *                 elif len(catrange) == 1:
 *                     try:
 *                         l._categories.add(policy.lookup_category(catrange[0]))             # <<<<<<<<<<<<<<
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel(
*/
              if (unlikely(__pyx_v_l->__pyx_base._categories == Py_None)) {
                PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
                __PYX_ERR(3, 323, __pyx_L49_error)
              }
              __pyx_t_11 = ((PyObject *)__pyx_v_policy);
              __Pyx_INCREF(__pyx_t_11);
              __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_catrange, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 323, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_7 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_8};
                __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lookup_category, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 323, __pyx_L49_error)
                __Pyx_GOTREF(__pyx_t_2);
              }
              __pyx_t_32 = PySet_Add(__pyx_v_l->__pyx_base._categories, __pyx_t_2); if (unlikely(__pyx_t_32 == ((int)-1))) __PYX_ERR(3, 323, __pyx_L49_error)
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

              /* "setools/policyrep/mls.pxi":322
 * 
 *                 elif len(catrange) == 1:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:
*/
            }
            __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
            goto __pyx_L56_try_end;
            __pyx_L49_error:;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

            /* "setools/policyrep/mls.pxi":324
 *                     try:
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:             # <<<<<<<<<<<<<<
 *                         raise InvalidLevel(
 *                             f"{name} is not a valid level ({group} is not a valid category)"
*/
            __Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_8, &__pyx_t_11);
            __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_InvalidCategory); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 324, __pyx_L51_except_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_16);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_ErrRestore(__pyx_t_2, __pyx_t_8, __pyx_t_11);
            __pyx_t_2 = 0; __pyx_t_8 = 0; __pyx_t_11 = 0;
            if (__pyx_t_10) {
              __Pyx_AddTraceback("setools.policyrep.Level.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_8, &__pyx_t_2) < 0) __PYX_ERR(3, 324, __pyx_L51_except_error)
              __Pyx_XGOTREF(__pyx_t_11);
              __Pyx_XGOTREF(__pyx_t_8);
              __Pyx_XGOTREF(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_8);
              __pyx_v_ex = __pyx_t_8;
              /*try:*/ {

                /* "setools/policyrep/mls.pxi":325
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel(             # <<<<<<<<<<<<<<
 *                             f"{name} is not a valid level ({group} is not a valid category)"
 *                             ) from ex
*/
                __pyx_t_12 = NULL;
                __Pyx_GetModuleGlobalName(__pyx_t_27, __pyx_mstate_global->__pyx_n_u_InvalidLevel); if (unlikely(!__pyx_t_27)) __PYX_ERR(3, 325, __pyx_L62_error)
                __Pyx_GOTREF(__pyx_t_27);

                /* "setools/policyrep/mls.pxi":326
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel(
 *                             f"{name} is not a valid level ({group} is not a valid category)"             # <<<<<<<<<<<<<<
 *                             ) from ex
 * 
*/
                __pyx_t_9 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 326, __pyx_L62_error)
                __Pyx_GOTREF(__pyx_t_9);
                __pyx_t_13 = __Pyx_PyUnicode_Unicode(__pyx_v_group); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 326, __pyx_L62_error)
                __Pyx_GOTREF(__pyx_t_13);
                __pyx_t_15[0] = __pyx_t_9;
                __pyx_t_15[1] = __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_level;
                __pyx_t_15[2] = __pyx_t_13;
                __pyx_t_15[3] = __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_category;
                __pyx_t_14 = __Pyx_PyUnicode_Join(__pyx_t_15, 4, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 23 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 25, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13));
                if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 326, __pyx_L62_error)
                __Pyx_GOTREF(__pyx_t_14);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __pyx_t_7 = 1;
                #if CYTHON_UNPACK_METHODS
                if (unlikely(PyMethod_Check(__pyx_t_27))) {
                  __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_27);
                  assert(__pyx_t_12);
                  PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_27);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(__pyx__function);
                  __Pyx_DECREF_SET(__pyx_t_27, __pyx__function);
                  __pyx_t_7 = 0;
                }
                #endif
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_14};
                  __pyx_t_16 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_27, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
                  if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 325, __pyx_L62_error)
                  __Pyx_GOTREF(__pyx_t_16);
                }

                /* "setools/policyrep/mls.pxi":327
 *                         raise InvalidLevel(
 *                             f"{name} is not a valid level ({group} is not a valid category)"
 *                             ) from ex             # <<<<<<<<<<<<<<
 * 
 *                 else:
*/
                __Pyx_Raise(__pyx_t_16, 0, 0, __pyx_v_ex);
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __PYX_ERR(3, 325, __pyx_L62_error)
              }

              /* "setools/policyrep/mls.pxi":324
 *                     try:
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:             # <<<<<<<<<<<<<<
 *                         raise InvalidLevel(
 *                             f"{name} is not a valid level ({group} is not a valid category)"
*/
              /*finally:*/ {
                __pyx_L62_error:;
                /*exception exit:*/{
                  __Pyx_PyThreadState_declare
                  __Pyx_PyThreadState_assign
                  __pyx_t_31 = 0; __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
                  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                  __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
                  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                   __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21);
                  if ( unlikely(__Pyx_GetException(&__pyx_t_31, &__pyx_t_30, &__pyx_t_29) < 0)) __Pyx_ErrFetch(&__pyx_t_31, &__pyx_t_30, &__pyx_t_29);
                  __Pyx_XGOTREF(__pyx_t_31);
                  __Pyx_XGOTREF(__pyx_t_30);
                  __Pyx_XGOTREF(__pyx_t_29);
                  __Pyx_XGOTREF(__pyx_t_19);
                  __Pyx_XGOTREF(__pyx_t_20);
                  __Pyx_XGOTREF(__pyx_t_21);
                  __pyx_t_10 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_33 = __pyx_filename;
                  {
                    __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
                  }
                  __Pyx_XGIVEREF(__pyx_t_19);
                  __Pyx_XGIVEREF(__pyx_t_20);
                  __Pyx_XGIVEREF(__pyx_t_21);
                  __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21);
                  __Pyx_XGIVEREF(__pyx_t_31);
                  __Pyx_XGIVEREF(__pyx_t_30);
                  __Pyx_XGIVEREF(__pyx_t_29);
                  __Pyx_ErrRestore(__pyx_t_31, __pyx_t_30, __pyx_t_29);
                  __pyx_t_31 = 0; __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
                  __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_33;
                  goto __pyx_L51_except_error;
                }
              }
            }
            goto __pyx_L51_except_error;

            /* "setools/policyrep/mls.pxi":322
 * 
 *                 elif len(catrange) == 1:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:
*/
            __pyx_L51_except_error:;
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_XGIVEREF(__pyx_t_23);
            __Pyx_XGIVEREF(__pyx_t_24);
            __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24);
            goto __pyx_L23_except_error;
            __pyx_L56_try_end:;
          }

          /* "setools/policyrep/mls.pxi":321
 *                             ) from ex
 * 
 *                 elif len(catrange) == 1:             # <<<<<<<<<<<<<<
 *                     try:
 *                         l._categories.add(policy.lookup_category(catrange[0]))
*/
          goto __pyx_L29;
        }

        /* "setools/policyrep/mls.pxi":330
 * 
 *                 else:
 *                     raise InvalidLevel(f"{name} is not a valid level (level parsing error)")             # <<<<<<<<<<<<<<
 * 
 *         # verify level is valid
*/
        /*else*/ {
          __pyx_t_8 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_InvalidLevel); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 330, __pyx_L23_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_16 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 330, __pyx_L23_except_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_27 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_16, __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_level_level_pars); if (unlikely(!__pyx_t_27)) __PYX_ERR(3, 330, __pyx_L23_except_error)
          __Pyx_GOTREF(__pyx_t_27);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_7 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_11))) {
            __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_11);
            assert(__pyx_t_8);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
            __pyx_t_7 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_27};
            __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 330, __pyx_L23_except_error)
            __Pyx_GOTREF(__pyx_t_2);
          }
          __Pyx_Raise(__pyx_t_2, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __PYX_ERR(3, 330, __pyx_L23_except_error)
        }
        __pyx_L29:;

        /* "setools/policyrep/mls.pxi":309
 *             pass
 *         else:
 *             for group in cats.split(","):             # <<<<<<<<<<<<<<
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:
*/
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L26_try_end;
    __pyx_L21_error:;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "setools/policyrep/mls.pxi":306
 *         try:
 *             cats = sens_split[1]
 *         except IndexError:             # <<<<<<<<<<<<<<
 *             pass
 *         else:
*/
    __pyx_t_17 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError))));
    if (__pyx_t_17) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L22_exception_handled;
    }
    goto __pyx_L23_except_error;

    /* "setools/policyrep/mls.pxi":304
 *         l._categories = set()
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             cats = sens_split[1]
 *         except IndexError:
*/
    __pyx_L23_except_error:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L22_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
    __pyx_L26_try_end:;
  }

  /* "setools/policyrep/mls.pxi":333
 * 
 *         # verify level is valid
 *         if not l <= l.sensitivity.level_decl():             # <<<<<<<<<<<<<<
 *             invalid_cats = l._categories - set(l.sensitivity.level_decl().categories())
 *             raise InvalidLevel(
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_l->__pyx_base.sensitivity);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_7 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_level_decl, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_l), __pyx_t_6, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 333, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 333, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_34 = (!__pyx_t_1);
  if (unlikely(__pyx_t_34)) {

    /* "setools/policyrep/mls.pxi":334
 *         # verify level is valid
 *         if not l <= l.sensitivity.level_decl():
 *             invalid_cats = l._categories - set(l.sensitivity.level_decl().categories())             # <<<<<<<<<<<<<<
 *             raise InvalidLevel(
 *                 f"{name} is not a valid level "
*/
    __pyx_t_27 = ((PyObject *)__pyx_v_l->__pyx_base.sensitivity);
    __Pyx_INCREF(__pyx_t_27);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_27, NULL};
      __pyx_t_11 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_level_decl, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
      if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 334, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
    }
    __pyx_t_6 = __pyx_t_11;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_categories, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 334, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_11 = PySet_New(__pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_v_l->__pyx_base._categories, __pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_v_invalid_cats = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "setools/policyrep/mls.pxi":335
 *         if not l <= l.sensitivity.level_decl():
 *             invalid_cats = l._categories - set(l.sensitivity.level_decl().categories())
 *             raise InvalidLevel(             # <<<<<<<<<<<<<<
 *                 f"{name} is not a valid level "
 *                 f"(category {', '.join(str(c) for c in invalid_cats)} is not associated "
*/
    __pyx_t_11 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_InvalidLevel); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);

    /* "setools/policyrep/mls.pxi":336
 *             invalid_cats = l._categories - set(l.sensitivity.level_decl().categories())
 *             raise InvalidLevel(
 *                 f"{name} is not a valid level "             # <<<<<<<<<<<<<<
 *                 f"(category {', '.join(str(c) for c in invalid_cats)} is not associated "
 *                 f"with sensitivity {l.sensitivity})")
*/
    __pyx_t_27 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(3, 336, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);

    /* "setools/policyrep/mls.pxi":337
 *             raise InvalidLevel(
 *                 f"{name} is not a valid level "
 *                 f"(category {', '.join(str(c) for c in invalid_cats)} is not associated "             # <<<<<<<<<<<<<<
 *                 f"with sensitivity {l.sensitivity})")
 * 
*/
    __pyx_t_8 = __pyx_pf_7setools_9policyrep_5Level_19factory_from_string_genexpr(NULL, __pyx_v_invalid_cats); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_16 = __Pyx_Generator_GetInlinedResult(__pyx_t_8); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__19, __pyx_t_16); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

    /* "setools/policyrep/mls.pxi":338
 *                 f"{name} is not a valid level "
 *                 f"(category {', '.join(str(c) for c in invalid_cats)} is not associated "
 *                 f"with sensitivity {l.sensitivity})")             # <<<<<<<<<<<<<<
 * 
 *         return l
*/
    __pyx_t_16 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_l->__pyx_base.sensitivity), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 338, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_35[0] = __pyx_t_27;
    __pyx_t_35[1] = __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_level_category;
    __pyx_t_35[2] = __pyx_t_8;
    __pyx_t_35[3] = __pyx_mstate_global->__pyx_kp_u_is_not_associated_with_sensitiv;
    __pyx_t_35[4] = __pyx_t_16;
    __pyx_t_35[5] = __pyx_mstate_global->__pyx_kp_u__4;

    /* "setools/policyrep/mls.pxi":336
 *             invalid_cats = l._categories - set(l.sensitivity.level_decl().categories())
 *             raise InvalidLevel(
 *                 f"{name} is not a valid level "             # <<<<<<<<<<<<<<
 *                 f"(category {', '.join(str(c) for c in invalid_cats)} is not associated "
 *                 f"with sensitivity {l.sensitivity})")
*/
    __pyx_t_14 = __Pyx_PyUnicode_Join(__pyx_t_35, 6, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_27) + 32 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 36 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_27) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_16));
    if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 336, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_11);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_14};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 335, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 335, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":333
 * 
 *         # verify level is valid
 *         if not l <= l.sensitivity.level_decl():             # <<<<<<<<<<<<<<
 *             invalid_cats = l._categories - set(l.sensitivity.level_decl().categories())
 *             raise InvalidLevel(
*/
  }

  /* "setools/policyrep/mls.pxi":340
 *                 f"with sensitivity {l.sensitivity})")
 * 
 *         return l             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_l);
  __pyx_r = __pyx_v_l;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":278
 *         return l
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Level factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Level objects by a string."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_27);
  __Pyx_AddTraceback("setools.policyrep.Level.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_l);
  __Pyx_XDECREF(__pyx_v_sens_split);
  __Pyx_XDECREF(__pyx_v_sens);
  __Pyx_XDECREF(__pyx_v_cats);
  __Pyx_XDECREF(__pyx_v_catrange);
  __Pyx_XDECREF(__pyx_v_group);
  __Pyx_XDECREF(__pyx_v_ex);
  __Pyx_XDECREF(__pyx_v_invalid_cats);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_5Level_19factory_from_string_2generator19);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":342
 *         return l
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_5Level_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_5Level_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level___hash__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_5Level___hash__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mls.pxi":343
 * 
 *     def __hash__(self):
 *         return hash(str(self))             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(3, 343, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":342
 *         return l
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Level.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":345
 *         return hash(str(self))
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             othercats = set(other.categories())
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_2__eq__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Level_2__eq__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_othercats = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/mls.pxi":346
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             othercats = set(other.categories())
 *         except AttributeError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":347
 *     def __eq__(self, other):
 *         try:
 *             othercats = set(other.categories())             # <<<<<<<<<<<<<<
 *         except AttributeError:
 *             return str(self) == str(other)
*/
      __pyx_t_5 = __pyx_v_other;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
        __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_categories, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 347, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_t_5 = PySet_New(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 347, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_othercats = ((PyObject*)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "setools/policyrep/mls.pxi":346
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             othercats = set(other.categories())
 *         except AttributeError:
*/
    }

    /* "setools/policyrep/mls.pxi":351
 *             return str(self) == str(other)
 *         else:
 *             return self.sensitivity == other.sensitivity and self._categories == othercats             # <<<<<<<<<<<<<<
 * 
 *     def __ge__(self, other):
*/
    /*else:*/ {
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 351, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 351, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(3, 351, __pyx_L5_except_error)
      if (__pyx_t_8) {
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_7);
        __pyx_t_5 = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 351, __pyx_L5_except_error)
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_5 = __pyx_t_7;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_L9_bool_binop_done:;
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L6_except_return;
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/mls.pxi":348
 *         try:
 *             othercats = set(other.categories())
 *         except AttributeError:             # <<<<<<<<<<<<<<
 *             return str(self) == str(other)
 *         else:
*/
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError))));
    if (__pyx_t_9) {
      __Pyx_AddTraceback("setools.policyrep.Level.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_4) < 0) __PYX_ERR(3, 348, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_4);

      /* "setools/policyrep/mls.pxi":349
 *             othercats = set(other.categories())
 *         except AttributeError:
 *             return str(self) == str(other)             # <<<<<<<<<<<<<<
 *         else:
 *             return self.sensitivity == other.sensitivity and self._categories == othercats
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_10 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 349, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 349, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_10, __pyx_t_11, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(3, 349, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyBool_FromLong(__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 349, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_r = __pyx_t_11;
      __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/mls.pxi":346
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             othercats = set(other.categories())
 *         except AttributeError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":345
 *         return hash(str(self))
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             othercats = set(other.categories())
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.Level.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_othercats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":353
 *             return self.sensitivity == other.sensitivity and self._categories == othercats
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         # Dom operator
 *         othercats = set(other.categories())
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_5__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_5__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__ge__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_4__ge__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Level_4__ge__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_othercats = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ge__", 0);

  /* "setools/policyrep/mls.pxi":355
 *     def __ge__(self, other):
 *         # Dom operator
 *         othercats = set(other.categories())             # <<<<<<<<<<<<<<
 *         return self.sensitivity >= other.sensitivity and self._categories >= othercats
 * 
*/
  __pyx_t_2 = __pyx_v_other;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_categories, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 355, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_2 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_othercats = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":356
 *         # Dom operator
 *         othercats = set(other.categories())
 *         return self.sensitivity >= other.sensitivity and self._categories >= othercats             # <<<<<<<<<<<<<<
 * 
 *     def __gt__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 356, __pyx_L1_error)
  if (__pyx_t_5) {
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_2 = __pyx_t_4;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_4 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 356, __pyx_L1_error)
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_2 = __pyx_t_4;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":353
 *             return self.sensitivity == other.sensitivity and self._categories == othercats
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         # Dom operator
 *         othercats = set(other.categories())
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Level.__ge__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_othercats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":358
 *         return self.sensitivity >= other.sensitivity and self._categories >= othercats
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         othercats = set(other.categories())
 *         return ((self.sensitivity > other.sensitivity and self._categories >= othercats) or
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_7__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_7__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__gt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_6__gt__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Level_6__gt__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_othercats = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__gt__", 0);

  /* "setools/policyrep/mls.pxi":359
 * 
 *     def __gt__(self, other):
 *         othercats = set(other.categories())             # <<<<<<<<<<<<<<
 *         return ((self.sensitivity > other.sensitivity and self._categories >= othercats) or
 *                 (self.sensitivity >= other.sensitivity and self._categories > othercats))
*/
  __pyx_t_2 = __pyx_v_other;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_categories, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_2 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 359, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_othercats = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":360
 *     def __gt__(self, other):
 *         othercats = set(other.categories())
 *         return ((self.sensitivity > other.sensitivity and self._categories >= othercats) or             # <<<<<<<<<<<<<<
 *                 (self.sensitivity >= other.sensitivity and self._categories > othercats))
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 360, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 360, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (!__pyx_t_5) {
    goto __pyx_L4_next_or;
  } else {
  }
  __pyx_t_4 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 360, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 360, __pyx_L1_error)
  if (!__pyx_t_5) {
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_2 = __pyx_t_4;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_L4_next_or:;

  /* "setools/policyrep/mls.pxi":361
 *         othercats = set(other.categories())
 *         return ((self.sensitivity > other.sensitivity and self._categories >= othercats) or
 *                 (self.sensitivity >= other.sensitivity and self._categories > othercats))             # <<<<<<<<<<<<<<
 * 
 *     def __le__(self, other):
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_4, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 361, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 361, __pyx_L1_error)
  if (__pyx_t_5) {
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 361, __pyx_L1_error)
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":358
 *         return self.sensitivity >= other.sensitivity and self._categories >= othercats
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         othercats = set(other.categories())
 *         return ((self.sensitivity > other.sensitivity and self._categories >= othercats) or
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Level.__gt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_othercats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":363
 *                 (self.sensitivity >= other.sensitivity and self._categories > othercats))
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         # Domby operator
 *         othercats = set(other.categories())
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_9__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_9__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__le__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_8__le__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Level_8__le__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_othercats = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__le__", 0);

  /* "setools/policyrep/mls.pxi":365
 *     def __le__(self, other):
 *         # Domby operator
 *         othercats = set(other.categories())             # <<<<<<<<<<<<<<
 *         return self.sensitivity <= other.sensitivity and self._categories <= othercats
 * 
*/
  __pyx_t_2 = __pyx_v_other;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_categories, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 365, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_2 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_othercats = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":366
 *         # Domby operator
 *         othercats = set(other.categories())
 *         return self.sensitivity <= other.sensitivity and self._categories <= othercats             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_1, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 366, __pyx_L1_error)
  if (__pyx_t_5) {
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_2 = __pyx_t_4;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_4 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 366, __pyx_L1_error)
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_2 = __pyx_t_4;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":363
 *                 (self.sensitivity >= other.sensitivity and self._categories > othercats))
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         # Domby operator
 *         othercats = set(other.categories())
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Level.__le__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_othercats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":368
 *         return self.sensitivity <= other.sensitivity and self._categories <= othercats
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         othercats = set(other.categories())
 *         return ((self.sensitivity < other.sensitivity and self._categories <= othercats) or
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_10__lt__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Level_10__lt__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_othercats = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/mls.pxi":369
 * 
 *     def __lt__(self, other):
 *         othercats = set(other.categories())             # <<<<<<<<<<<<<<
 *         return ((self.sensitivity < other.sensitivity and self._categories <= othercats) or
 *                 (self.sensitivity <= other.sensitivity and self._categories < othercats))
*/
  __pyx_t_2 = __pyx_v_other;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_categories, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_2 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_othercats = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":370
 *     def __lt__(self, other):
 *         othercats = set(other.categories())
 *         return ((self.sensitivity < other.sensitivity and self._categories <= othercats) or             # <<<<<<<<<<<<<<
 *                 (self.sensitivity <= other.sensitivity and self._categories < othercats))
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (!__pyx_t_5) {
    goto __pyx_L4_next_or;
  } else {
  }
  __pyx_t_4 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 370, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 370, __pyx_L1_error)
  if (!__pyx_t_5) {
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_2 = __pyx_t_4;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_L4_next_or:;

  /* "setools/policyrep/mls.pxi":371
 *         othercats = set(other.categories())
 *         return ((self.sensitivity < other.sensitivity and self._categories <= othercats) or
 *                 (self.sensitivity <= other.sensitivity and self._categories < othercats))             # <<<<<<<<<<<<<<
 * 
 *     def __xor__(self, other):
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_sensitivity_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_4, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 371, __pyx_L1_error)
  if (__pyx_t_5) {
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 371, __pyx_L1_error)
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":368
 *         return self.sensitivity <= other.sensitivity and self._categories <= othercats
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         othercats = set(other.categories())
 *         return ((self.sensitivity < other.sensitivity and self._categories <= othercats) or
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Level.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_othercats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":373
 *                 (self.sensitivity <= other.sensitivity and self._categories < othercats))
 * 
 *     def __xor__(self, other):             # <<<<<<<<<<<<<<
 *         # Incomp operator
 *         return not (self >= other or self <= other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_13__xor__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_13__xor__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__xor__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_12__xor__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Level_12__xor__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__xor__", 0);

  /* "setools/policyrep/mls.pxi":375
 *     def __xor__(self, other):
 *         # Incomp operator
 *         return not (self >= other or self <= other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self), __pyx_v_other, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 375, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(3, 375, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self), __pyx_v_other, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 375, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(3, 375, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_3;
  __pyx_L3_bool_binop_done:;
  __pyx_t_2 = __Pyx_PyBool_FromLong((!__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":373
 *                 (self.sensitivity <= other.sensitivity and self._categories < othercats))
 * 
 *     def __xor__(self, other):             # <<<<<<<<<<<<<<
 *         # Incomp operator
 *         return not (self >= other or self <= other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Level.__xor__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":377
 *         return not (self >= other or self <= other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_15statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_5Level_15statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Level_15statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_5Level_15statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_14statement(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Level_14statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mls.pxi":378
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(3, 378, __pyx_L1_error)

  /* "setools/policyrep/mls.pxi":377
 *         return not (self >= other or self <= other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Level.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_17__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_5Level_17__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Level_17__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_5Level_17__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_16__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Level_16__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->__pyx_base._categories);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base._categories);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->__pyx_base._categories) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.sensitivity);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.sensitivity);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.sensitivity)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Level, (type(self), 0x18b60c0, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->__pyx_base._categories != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.sensitivity) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Level, (type(self), 0x18b60c0, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Level, (type(self), 0x18b60c0, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Level, (type(self), 0x18b60c0, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Level); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_25911488);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_25911488);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_25911488) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Level, (type(self), 0x18b60c0, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Level, (type(self), 0x18b60c0, None), state
 *     else:
 *         return __pyx_unpickle_Level, (type(self), 0x18b60c0, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Level__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Level); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_25911488);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_25911488);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_25911488) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Level.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Level, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Level__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_19__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_5Level_19__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Level_19__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_5Level_19__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Level.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_18__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Level_18__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Level, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Level__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Level__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Level, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Level__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Level.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":389
 *         readonly Level high
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Range factory(SELinuxPolicy policy, sepol.mls_range_t *symbol):
 *         """Factory function for creating Range objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, mls_range_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_Range *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":392
 *     cdef inline Range factory(SELinuxPolicy policy, sepol.mls_range_t *symbol):
 *         """Factory function for creating Range objects."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  __pyx_t_1 = (!__pyx_v_policy->mls);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":393
 *         """Factory function for creating Range objects."""
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         cdef Range r = Range.__new__(Range)
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 393, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":392
 *     cdef inline Range factory(SELinuxPolicy policy, sepol.mls_range_t *symbol):
 *         """Factory function for creating Range objects."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  }

  /* "setools/policyrep/mls.pxi":395
 *             raise MLSDisabled
 * 
 *         cdef Range r = Range.__new__(Range)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.low = Level.factory(policy, &symbol.level[0])
*/
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Range(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 395, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":396
 * 
 *         cdef Range r = Range.__new__(Range)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.low = Level.factory(policy, &symbol.level[0])
 *         r.high = Level.factory(policy, &symbol.level[1])
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.policy);
  __pyx_v_r->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":397
 *         cdef Range r = Range.__new__(Range)
 *         r.policy = policy
 *         r.low = Level.factory(policy, &symbol.level[0])             # <<<<<<<<<<<<<<
 *         r.high = Level.factory(policy, &symbol.level[1])
 *         return r
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory(__pyx_v_policy, (&(__pyx_v_symbol->level[0])))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->low);
  __Pyx_DECREF((PyObject *)__pyx_v_r->low);
  __pyx_v_r->low = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":398
 *         r.policy = policy
 *         r.low = Level.factory(policy, &symbol.level[0])
 *         r.high = Level.factory(policy, &symbol.level[1])             # <<<<<<<<<<<<<<
 *         return r
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory(__pyx_v_policy, (&(__pyx_v_symbol->level[1])))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->high);
  __Pyx_DECREF((PyObject *)__pyx_v_r->high);
  __pyx_v_r->high = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":399
 *         r.low = Level.factory(policy, &symbol.level[0])
 *         r.high = Level.factory(policy, &symbol.level[1])
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":389
 *         readonly Level high
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Range factory(SELinuxPolicy policy, sepol.mls_range_t *symbol):
 *         """Factory function for creating Range objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Range.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":401
 *         return r
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Range factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Range objects by name."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_name) {
  struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_r = 0;
  PyObject *__pyx_v_levels = 0;
  PyObject *__pyx_v_ex = NULL;
  struct __pyx_obj_7setools_9policyrep_Range *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15[4];
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  char const *__pyx_t_18;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  PyObject *__pyx_t_24 = NULL;
  char const *__pyx_t_25;
  int __pyx_t_26;
  PyObject *__pyx_t_27[6];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory_from_string", 0);

  /* "setools/policyrep/mls.pxi":404
 *     cdef inline Range factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Range objects by name."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  __pyx_t_1 = (!__pyx_v_policy->mls);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":405
 *         """Factory function variant for constructing Range objects by name."""
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         cdef Range r = Range.__new__(Range)
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 405, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":404
 *     cdef inline Range factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Range objects by name."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
*/
  }

  /* "setools/policyrep/mls.pxi":407
 *             raise MLSDisabled
 * 
 *         cdef Range r = Range.__new__(Range)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Range(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 407, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":408
 * 
 *         cdef Range r = Range.__new__(Range)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 * 
 *         # build range:
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.policy);
  __pyx_v_r->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":411
 * 
 *         # build range:
 *         cdef list levels = name.split("-")             # <<<<<<<<<<<<<<
 * 
 *         # strip() levels to handle ranges with spaces in them,
*/
  if (unlikely(__pyx_v_name == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "split");
    __PYX_ERR(3, 411, __pyx_L1_error)
  }
  __pyx_t_2 = PyUnicode_Split(__pyx_v_name, __pyx_mstate_global->__pyx_kp_u__20, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_levels = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":415
 *         # strip() levels to handle ranges with spaces in them,
 *         # e.g. s0:c1 - s0:c0.c255
 *         try:             # <<<<<<<<<<<<<<
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":416
 *         # e.g. s0:c1 - s0:c0.c255
 *         try:
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())             # <<<<<<<<<<<<<<
 *         except InvalidLevel as ex:
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex
*/
      __pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_levels, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 416, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = __pyx_t_7;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_8 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
        __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_strip, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 416, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(3, 416, __pyx_L4_error)
      __pyx_t_7 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory_from_string(__pyx_v_policy, ((PyObject*)__pyx_t_2))); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 416, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GIVEREF(__pyx_t_7);
      __Pyx_GOTREF((PyObject *)__pyx_v_r->low);
      __Pyx_DECREF((PyObject *)__pyx_v_r->low);
      __pyx_v_r->low = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_7);
      __pyx_t_7 = 0;

      /* "setools/policyrep/mls.pxi":415
 *         # strip() levels to handle ranges with spaces in them,
 *         # e.g. s0:c1 - s0:c0.c255
 *         try:             # <<<<<<<<<<<<<<
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:
*/
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "setools/policyrep/mls.pxi":417
 *         try:
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex
 * 
*/
    __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_2, &__pyx_t_6);
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_InvalidLevel); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 417, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_7, __pyx_t_9);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_ErrRestore(__pyx_t_7, __pyx_t_2, __pyx_t_6);
    __pyx_t_7 = 0; __pyx_t_2 = 0; __pyx_t_6 = 0;
    if (__pyx_t_10) {
      __Pyx_AddTraceback("setools.policyrep.Range.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_7) < 0) __PYX_ERR(3, 417, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_v_ex = __pyx_t_2;
      /*try:*/ {

        /* "setools/policyrep/mls.pxi":418
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
        __pyx_t_11 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_InvalidRange); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 418, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 418, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_14 = __Pyx_PyObject_FormatSimple(__pyx_v_ex, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 418, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_15[0] = __pyx_t_13;
        __pyx_t_15[1] = __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_range;
        __pyx_t_15[2] = __pyx_t_14;
        __pyx_t_15[3] = __pyx_mstate_global->__pyx_kp_u__21;
        __pyx_t_16 = __Pyx_PyUnicode_Join(__pyx_t_15, 4, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 23 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14) + 2, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14));
        if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 418, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_8 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12);
          assert(__pyx_t_11);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
          __pyx_t_8 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_16};
          __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 418, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_9);
        }
        __Pyx_Raise(__pyx_t_9, 0, 0, __pyx_v_ex);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __PYX_ERR(3, 418, __pyx_L15_error)
      }

      /* "setools/policyrep/mls.pxi":417
 *         try:
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex
 * 
*/
      /*finally:*/ {
        __pyx_L15_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24);
          if ( unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_23);
          __Pyx_XGOTREF(__pyx_t_24);
          __pyx_t_10 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_22);
          __Pyx_XGIVEREF(__pyx_t_23);
          __Pyx_XGIVEREF(__pyx_t_24);
          __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24);
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_ErrRestore(__pyx_t_19, __pyx_t_20, __pyx_t_21);
          __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0;
          __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_18;
          goto __pyx_L6_except_error;
        }
      }
    }
    goto __pyx_L6_except_error;

    /* "setools/policyrep/mls.pxi":415
 *         # strip() levels to handle ranges with spaces in them,
 *         # e.g. s0:c1 - s0:c0.c255
 *         try:             # <<<<<<<<<<<<<<
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L9_try_end:;
  }

  /* "setools/policyrep/mls.pxi":420
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_4, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":421
 * 
 *         try:
 *             r.high = Level.factory_from_string(policy, levels[1].strip())             # <<<<<<<<<<<<<<
 *         except InvalidLevel as ex:
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex
*/
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_levels, 1, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 421, __pyx_L21_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = __pyx_t_6;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_8 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
        __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_strip, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 421, __pyx_L21_error)
        __Pyx_GOTREF(__pyx_t_7);
      }
      if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_7))) __PYX_ERR(3, 421, __pyx_L21_error)
      __pyx_t_6 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory_from_string(__pyx_v_policy, ((PyObject*)__pyx_t_7))); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 421, __pyx_L21_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_GOTREF((PyObject *)__pyx_v_r->high);
      __Pyx_DECREF((PyObject *)__pyx_v_r->high);
      __pyx_v_r->high = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_6);
      __pyx_t_6 = 0;

      /* "setools/policyrep/mls.pxi":420
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:
*/
    }
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L26_try_end;
    __pyx_L21_error:;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "setools/policyrep/mls.pxi":422
 *         try:
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex
 *         except IndexError:
*/
    __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_2);
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_InvalidLevel); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 422, __pyx_L23_except_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_17 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_6, __pyx_t_9);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_2);
    __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_2 = 0;
    if (__pyx_t_17) {
      __Pyx_AddTraceback("setools.policyrep.Range.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(3, 422, __pyx_L23_except_error)
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __pyx_v_ex = __pyx_t_7;
      /*try:*/ {

        /* "setools/policyrep/mls.pxi":423
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex             # <<<<<<<<<<<<<<
 *         except IndexError:
 *             r.high = r.low
*/
        __pyx_t_12 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_InvalidRange); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 423, __pyx_L32_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_11 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 423, __pyx_L32_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_14 = __Pyx_PyObject_FormatSimple(__pyx_v_ex, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 423, __pyx_L32_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_15[0] = __pyx_t_11;
        __pyx_t_15[1] = __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_range;
        __pyx_t_15[2] = __pyx_t_14;
        __pyx_t_15[3] = __pyx_mstate_global->__pyx_kp_u__21;
        __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_15, 4, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 23 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14) + 2, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14));
        if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 423, __pyx_L32_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_8 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_16))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_16);
          assert(__pyx_t_12);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_16);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_16, __pyx__function);
          __pyx_t_8 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_13};
          __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_16, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 423, __pyx_L32_error)
          __Pyx_GOTREF(__pyx_t_9);
        }
        __Pyx_Raise(__pyx_t_9, 0, 0, __pyx_v_ex);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __PYX_ERR(3, 423, __pyx_L32_error)
      }

      /* "setools/policyrep/mls.pxi":422
 *         try:
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex
 *         except IndexError:
*/
      /*finally:*/ {
        __pyx_L32_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19);
          if ( unlikely(__Pyx_GetException(&__pyx_t_24, &__pyx_t_23, &__pyx_t_22) < 0)) __Pyx_ErrFetch(&__pyx_t_24, &__pyx_t_23, &__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_24);
          __Pyx_XGOTREF(__pyx_t_23);
          __Pyx_XGOTREF(__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_19);
          __pyx_t_17 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_25 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_20, __pyx_t_19);
          __Pyx_XGIVEREF(__pyx_t_24);
          __Pyx_XGIVEREF(__pyx_t_23);
          __Pyx_XGIVEREF(__pyx_t_22);
          __Pyx_ErrRestore(__pyx_t_24, __pyx_t_23, __pyx_t_22);
          __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0;
          __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_25;
          goto __pyx_L23_except_error;
        }
      }
    }

    /* "setools/policyrep/mls.pxi":424
 *         except InvalidLevel as ex:
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex
 *         except IndexError:             # <<<<<<<<<<<<<<
 *             r.high = r.low
 * 
*/
    __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError))));
    if (__pyx_t_10) {
      __Pyx_ErrRestore(0,0,0);

      /* "setools/policyrep/mls.pxi":425
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex
 *         except IndexError:
 *             r.high = r.low             # <<<<<<<<<<<<<<
 * 
 *         # verify high level dominates low range
*/
      __pyx_t_6 = ((PyObject *)__pyx_v_r->low);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_GOTREF((PyObject *)__pyx_v_r->high);
      __Pyx_DECREF((PyObject *)__pyx_v_r->high);
      __pyx_v_r->high = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_6);
      __pyx_t_6 = 0;
      goto __pyx_L22_exception_handled;
    }
    goto __pyx_L23_except_error;

    /* "setools/policyrep/mls.pxi":420
 *             raise InvalidRange(f"{name} is not a valid range ({ex}).") from ex
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:
*/
    __pyx_L23_except_error:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L22_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
    __pyx_L26_try_end:;
  }

  /* "setools/policyrep/mls.pxi":428
 * 
 *         # verify high level dominates low range
 *         if not r.high >= r.low:             # <<<<<<<<<<<<<<
 *             raise InvalidRange(
 *                 f"{name} is not a valid range ({r.low} is not dominated by {r.high})")
*/
  __pyx_t_6 = PyObject_RichCompare(((PyObject *)__pyx_v_r->high), ((PyObject *)__pyx_v_r->low), Py_GE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 428, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 428, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_26 = (!__pyx_t_1);
  if (unlikely(__pyx_t_26)) {

    /* "setools/policyrep/mls.pxi":429
 *         # verify high level dominates low range
 *         if not r.high >= r.low:
 *             raise InvalidRange(             # <<<<<<<<<<<<<<
 *                 f"{name} is not a valid range ({r.low} is not dominated by {r.high})")
 *         return r
*/
    __pyx_t_7 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_InvalidRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "setools/policyrep/mls.pxi":430
 *         if not r.high >= r.low:
 *             raise InvalidRange(
 *                 f"{name} is not a valid range ({r.low} is not dominated by {r.high})")             # <<<<<<<<<<<<<<
 *         return r
 * 
*/
    __pyx_t_9 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 430, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_16 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_r->low), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 430, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_13 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_r->high), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 430, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_27[0] = __pyx_t_9;
    __pyx_t_27[1] = __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_range;
    __pyx_t_27[2] = __pyx_t_16;
    __pyx_t_27[3] = __pyx_mstate_global->__pyx_kp_u_is_not_dominated_by;
    __pyx_t_27[4] = __pyx_t_13;
    __pyx_t_27[5] = __pyx_mstate_global->__pyx_kp_u__4;
    __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_27, 6, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 23 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16) + 21 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_16) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13));
    if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 430, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_7);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_12};
      __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 429, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(3, 429, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":428
 * 
 *         # verify high level dominates low range
 *         if not r.high >= r.low:             # <<<<<<<<<<<<<<
 *             raise InvalidRange(
 *                 f"{name} is not a valid range ({r.low} is not dominated by {r.high})")
*/
  }

  /* "setools/policyrep/mls.pxi":431
 *             raise InvalidRange(
 *                 f"{name} is not a valid range ({r.low} is not dominated by {r.high})")
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":401
 *         return r
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Range factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Range objects by name."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_AddTraceback("setools.policyrep.Range.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XDECREF(__pyx_v_levels);
  __Pyx_XDECREF(__pyx_v_ex);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":433
 *         return r
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.high == self.low:
 *             return str(self.low)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_1__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range___str__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range___str__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[3];
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/mls.pxi":434
 * 
 *     def __str__(self):
 *         if self.high == self.low:             # <<<<<<<<<<<<<<
 *             return str(self.low)
 * 
*/
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self->high), ((PyObject *)__pyx_v_self->low), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 434, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(3, 434, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "setools/policyrep/mls.pxi":435
 *     def __str__(self):
 *         if self.high == self.low:
 *             return str(self.low)             # <<<<<<<<<<<<<<
 * 
 *         return f"{self.low} - {self.high}"
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self->low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 435, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/mls.pxi":434
 * 
 *     def __str__(self):
 *         if self.high == self.low:             # <<<<<<<<<<<<<<
 *             return str(self.low)
 * 
*/
  }

  /* "setools/policyrep/mls.pxi":437
 *             return str(self.low)
 * 
 *         return f"{self.low} - {self.high}"             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->low), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->high), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_t_1;
  __pyx_t_4[1] = __pyx_mstate_global->__pyx_kp_u__22;
  __pyx_t_4[2] = __pyx_t_3;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":433
 *         return r
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.high == self.low:
 *             return str(self.low)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Range.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":439
 *         return f"{self.low} - {self.high}"
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_5Range_3__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_5Range_3__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_2__hash__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_5Range_2__hash__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mls.pxi":440
 * 
 *     def __hash__(self):
 *         return hash(str(self))             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(3, 440, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":439
 *         return f"{self.low} - {self.high}"
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Range.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":442
 *         return hash(str(self))
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return self.low <= other <= self.high
 * 
*/

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_5Range_5__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static int __pyx_pw_7setools_9policyrep_5Range_5__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_4__contains__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7setools_9policyrep_5Range_4__contains__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__contains__", 0);

  /* "setools/policyrep/mls.pxi":443
 * 
 *     def __contains__(self, other):
 *         return self.low <= other <= self.high             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
*/
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self->low), __pyx_v_other, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 443, __pyx_L1_error)
  if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_other, ((PyObject *)__pyx_v_self->high), Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 443, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 443, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":442
 *         return hash(str(self))
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return self.low <= other <= self.high
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Range.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":445
 *         return self.low <= other <= self.high
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self.low == other.low and self.high == other.high
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_6__eq__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_6__eq__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_other_str = NULL;
  PyObject *__pyx_v_self_str = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/mls.pxi":446
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.low == other.low and self.high == other.high
 *         except AttributeError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":447
 *     def __eq__(self, other):
 *         try:
 *             return self.low == other.low and self.high == other.high             # <<<<<<<<<<<<<<
 *         except AttributeError:
 *             # remove all spaces in the string representations
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 447, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyObject_RichCompare(((PyObject *)__pyx_v_self->low), __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 447, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(3, 447, __pyx_L3_error)
      if (__pyx_t_7) {
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_4 = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 447, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_v_self->high), __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 447, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_4 = __pyx_t_5;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_L9_bool_binop_done:;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/mls.pxi":446
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.low == other.low and self.high == other.high
 *         except AttributeError:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/mls.pxi":448
 *         try:
 *             return self.low == other.low and self.high == other.high
 *         except AttributeError:             # <<<<<<<<<<<<<<
 *             # remove all spaces in the string representations
 *             # to handle cases where the other object does not
*/
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError))));
    if (__pyx_t_8) {
      __Pyx_AddTraceback("setools.policyrep.Range.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(3, 448, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);

      /* "setools/policyrep/mls.pxi":452
 *             # to handle cases where the other object does not
 *             # have spaces around the '-'
 *             other_str = str(other).replace(" ", "")             # <<<<<<<<<<<<<<
 *             self_str = str(self).replace(" ", "")
 *             return self_str == other_str
*/
      __pyx_t_9 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 452, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = PyUnicode_Replace(((PyObject*)__pyx_t_9), __pyx_mstate_global->__pyx_kp_u_, __pyx_mstate_global->__pyx_kp_u__23, -1); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 452, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_v_other_str = ((PyObject*)__pyx_t_10);
      __pyx_t_10 = 0;

      /* "setools/policyrep/mls.pxi":453
 *             # have spaces around the '-'
 *             other_str = str(other).replace(" ", "")
 *             self_str = str(self).replace(" ", "")             # <<<<<<<<<<<<<<
 *             return self_str == other_str
 * 
*/
      __pyx_t_10 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 453, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_9 = PyUnicode_Replace(((PyObject*)__pyx_t_10), __pyx_mstate_global->__pyx_kp_u_, __pyx_mstate_global->__pyx_kp_u__23, -1); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 453, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_v_self_str = ((PyObject*)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":454
 *             other_str = str(other).replace(" ", "")
 *             self_str = str(self).replace(" ", "")
 *             return self_str == other_str             # <<<<<<<<<<<<<<
 * 
 *     def __ge__(self, other):
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_self_str, __pyx_v_other_str, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(3, 454, __pyx_L5_except_error)
      __pyx_t_9 = __Pyx_PyBool_FromLong(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 454, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_r = __pyx_t_9;
      __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/mls.pxi":446
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.low == other.low and self.high == other.high
 *         except AttributeError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":445
 *         return self.low <= other <= self.high
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self.low == other.low and self.high == other.high
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.Range.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_other_str);
  __Pyx_XDECREF(__pyx_v_self_str);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":456
 *             return self_str == other_str
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         return self.low <= other.low and self.high >= other.high
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_9__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_9__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__ge__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_8__ge__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_8__ge__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ge__", 0);

  /* "setools/policyrep/mls.pxi":457
 * 
 *     def __ge__(self, other):
 *         return self.low <= other.low and self.high >= other.high             # <<<<<<<<<<<<<<
 * 
 *     def __gt__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->low), __pyx_t_2, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 457, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(3, 457, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self->high), __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 457, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":456
 *             return self_str == other_str
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         return self.low <= other.low and self.high >= other.high
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Range.__ge__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":459
 *         return self.low <= other.low and self.high >= other.high
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         return (self.low <= other.low and self.high > other.high) \
 *             or (self.low < other.low and self.high >= other.high)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_11__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_11__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__gt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_10__gt__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_10__gt__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__gt__", 0);

  /* "setools/policyrep/mls.pxi":460
 * 
 *     def __gt__(self, other):
 *         return (self.low <= other.low and self.high > other.high) \             # <<<<<<<<<<<<<<
 *             or (self.low < other.low and self.high >= other.high)
 * 
*/
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/mls.pxi":461
 *     def __gt__(self, other):
 *         return (self.low <= other.low and self.high > other.high) \
 *             or (self.low < other.low and self.high >= other.high)             # <<<<<<<<<<<<<<
 * 
 *     def __le__(self, other):
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->low), __pyx_t_2, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 460, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(3, 460, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!__pyx_t_4) {
    goto __pyx_L4_next_or;
  } else {
  }

  /* "setools/policyrep/mls.pxi":460
 * 
 *     def __gt__(self, other):
 *         return (self.low <= other.low and self.high > other.high) \             # <<<<<<<<<<<<<<
 *             or (self.low < other.low and self.high >= other.high)
 * 
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self->high), __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 460, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(3, 460, __pyx_L1_error)
  if (!__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_L4_next_or:;

  /* "setools/policyrep/mls.pxi":461
 *     def __gt__(self, other):
 *         return (self.low <= other.low and self.high > other.high) \
 *             or (self.low < other.low and self.high >= other.high)             # <<<<<<<<<<<<<<
 * 
 *     def __le__(self, other):
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->low), __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 461, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(3, 461, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self->high), __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 461, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":459
 *         return self.low <= other.low and self.high >= other.high
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         return (self.low <= other.low and self.high > other.high) \
 *             or (self.low < other.low and self.high >= other.high)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Range.__gt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":463
 *             or (self.low < other.low and self.high >= other.high)
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         return other.low <= self.low <= other.high \
 *             and other.low <= self.high <= other.high
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_13__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_13__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__le__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_12__le__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_12__le__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__le__", 0);

  /* "setools/policyrep/mls.pxi":464
 * 
 *     def __le__(self, other):
 *         return other.low <= self.low <= other.high \             # <<<<<<<<<<<<<<
 *             and other.low <= self.high <= other.high
 * 
*/
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/mls.pxi":465
 *     def __le__(self, other):
 *         return other.low <= self.low <= other.high \
 *             and other.low <= self.high <= other.high             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/mls.pxi":464
 * 
 *     def __le__(self, other):
 *         return other.low <= self.low <= other.high \             # <<<<<<<<<<<<<<
 *             and other.low <= self.high <= other.high
 * 
*/
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, ((PyObject *)__pyx_v_self->low), Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 464, __pyx_L1_error)
  if (__Pyx_PyObject_IsTrue(__pyx_t_3)) {
    __Pyx_DECREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 464, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->low), __pyx_t_4, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 464, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 464, __pyx_L1_error)
  if (__pyx_t_5) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/mls.pxi":465
 *     def __le__(self, other):
 *         return other.low <= self.low <= other.high \
 *             and other.low <= self.high <= other.high             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_v_self->high), Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 465, __pyx_L1_error)
  if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
    __Pyx_DECREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 465, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self->high), __pyx_t_4, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 465, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":463
 *             or (self.low < other.low and self.high >= other.high)
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         return other.low <= self.low <= other.high \
 *             and other.low <= self.high <= other.high
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Range.__le__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":467
 *             and other.low <= self.high <= other.high
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return (other.low <= self.low and other.high > self.high) \
 *             or (other.low < self.low and other.high >= self.high)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_15__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_15__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_14__lt__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_14__lt__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/mls.pxi":468
 * 
 *     def __lt__(self, other):
 *         return (other.low <= self.low and other.high > self.high) \             # <<<<<<<<<<<<<<
 *             or (other.low < self.low and other.high >= self.high)
 * 
*/
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/mls.pxi":469
 *     def __lt__(self, other):
 *         return (other.low <= self.low and other.high > self.high) \
 *             or (other.low < self.low and other.high >= self.high)             # <<<<<<<<<<<<<<
 * 
 *     def __xor__(self, other):
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/mls.pxi":468
 * 
 *     def __lt__(self, other):
 *         return (other.low <= self.low and other.high > self.high) \             # <<<<<<<<<<<<<<
 *             or (other.low < self.low and other.high >= self.high)
 * 
*/
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, ((PyObject *)__pyx_v_self->low), Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(3, 468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!__pyx_t_4) {
    goto __pyx_L4_next_or;
  } else {
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_v_self->high), Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(3, 468, __pyx_L1_error)
  if (!__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_L4_next_or:;

  /* "setools/policyrep/mls.pxi":469
 *     def __lt__(self, other):
 *         return (other.low <= self.low and other.high > self.high) \
 *             or (other.low < self.low and other.high >= self.high)             # <<<<<<<<<<<<<<
 * 
 *     def __xor__(self, other):
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, ((PyObject *)__pyx_v_self->low), Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 469, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(3, 469, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_v_self->high), Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 469, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":467
 *             and other.low <= self.high <= other.high
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return (other.low <= self.low and other.high > self.high) \
 *             or (other.low < self.low and other.high >= self.high)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Range.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":471
 *             or (other.low < self.low and other.high >= self.high)
 * 
 *     def __xor__(self, other):             # <<<<<<<<<<<<<<
 *         # Incomp operator
 *         return not (self >= other or self <= other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_17__xor__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_17__xor__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__xor__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_16__xor__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_16__xor__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__xor__", 0);

  /* "setools/policyrep/mls.pxi":473
 *     def __xor__(self, other):
 *         # Incomp operator
 *         return not (self >= other or self <= other)             # <<<<<<<<<<<<<<
 * 
 *     def dom(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self), __pyx_v_other, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 473, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(3, 473, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self), __pyx_v_other, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 473, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(3, 473, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_3;
  __pyx_L3_bool_binop_done:;
  __pyx_t_2 = __Pyx_PyBool_FromLong((!__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":471
 *             or (other.low < self.low and other.high >= self.high)
 * 
 *     def __xor__(self, other):             # <<<<<<<<<<<<<<
 *         # Incomp operator
 *         return not (self >= other or self <= other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Range.__xor__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":475
 *         return not (self >= other or self <= other)
 * 
 *     def dom(self, other):             # <<<<<<<<<<<<<<
 *         """Returns if self dominates other."""
 *         return self >= other
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_19dom(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_5Range_18dom, "Returns if self dominates other.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_5Range_19dom = {"dom", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Range_19dom, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_5Range_18dom};
static PyObject *__pyx_pw_7setools_9policyrep_5Range_19dom(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_other = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("dom (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_other,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 475, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 475, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "dom", 0) < (0)) __PYX_ERR(3, 475, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("dom", 1, 1, 1, i); __PYX_ERR(3, 475, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 475, __pyx_L3_error)
    }
    __pyx_v_other = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("dom", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 475, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Range.dom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_18dom(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), __pyx_v_other);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_18dom(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("dom", 0);

  /* "setools/policyrep/mls.pxi":477
 *     def dom(self, other):
 *         """Returns if self dominates other."""
 *         return self >= other             # <<<<<<<<<<<<<<
 * 
 *     def domby(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self), __pyx_v_other, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 477, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":475
 *         return not (self >= other or self <= other)
 * 
 *     def dom(self, other):             # <<<<<<<<<<<<<<
 *         """Returns if self dominates other."""
 *         return self >= other
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Range.dom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":479
 *         return self >= other
 * 
 *     def domby(self, other):             # <<<<<<<<<<<<<<
 *         """Returns if self is dominated by other."""
 *         return self <= other
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_21domby(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_5Range_20domby, "Returns if self is dominated by other.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_5Range_21domby = {"domby", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Range_21domby, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_5Range_20domby};
static PyObject *__pyx_pw_7setools_9policyrep_5Range_21domby(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_other = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("domby (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_other,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 479, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 479, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "domby", 0) < (0)) __PYX_ERR(3, 479, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("domby", 1, 1, 1, i); __PYX_ERR(3, 479, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 479, __pyx_L3_error)
    }
    __pyx_v_other = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("domby", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 479, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Range.domby", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_20domby(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), __pyx_v_other);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_20domby(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("domby", 0);

  /* "setools/policyrep/mls.pxi":481
 *     def domby(self, other):
 *         """Returns if self is dominated by other."""
 *         return self <= other             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self), __pyx_v_other, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 481, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":479
 *         return self >= other
 * 
 *     def domby(self, other):             # <<<<<<<<<<<<<<
 *         """Returns if self is dominated by other."""
 *         return self <= other
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Range.domby", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":483
 *         return self <= other
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_23statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_5Range_23statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Range_23statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_5Range_23statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_22statement(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_22statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mls.pxi":484
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(3, 484, __pyx_L1_error)

  /* "setools/policyrep/mls.pxi":483
 *         return self <= other
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Range.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":386
 * 
 *     cdef:
 *         readonly Level low             # <<<<<<<<<<<<<<
 *         readonly Level high
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_3low_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_3low_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_3low___get__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_3low___get__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->low);
  __pyx_r = ((PyObject *)__pyx_v_self->low);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":387
 *     cdef:
 *         readonly Level low
 *         readonly Level high             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_4high_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_4high_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_4high___get__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_4high___get__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->high);
  __pyx_r = ((PyObject *)__pyx_v_self->high);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_25__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_5Range_25__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Range_25__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_5Range_25__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_24__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_24__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.high, self.key, self.low, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->high);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->high);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->high)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->low);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->low);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->low)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.high, self.key, self.low, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.high, self.key, self.low, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.high is not None or self.low is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.high, self.key, self.low, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.high is not None or self.low is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Range, (type(self), 0x472fd68, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->high) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->low) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.high is not None or self.low is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Range, (type(self), 0x472fd68, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.high is not None or self.low is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Range, (type(self), 0x472fd68, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Range, (type(self), 0x472fd68, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Range); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_74644840);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_74644840);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_74644840) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.high is not None or self.low is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Range, (type(self), 0x472fd68, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Range, (type(self), 0x472fd68, None), state
 *     else:
 *         return __pyx_unpickle_Range, (type(self), 0x472fd68, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Range__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Range); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_74644840);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_74644840);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_74644840) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Range.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Range, (type(self), 0x472fd68, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Range__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_27__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_5Range_27__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Range_27__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_5Range_27__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Range.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_26__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_5Range_26__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Range, (type(self), 0x472fd68, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Range__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Range__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Range, (type(self), 0x472fd68, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Range__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Range.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":494
 *     """Iterate over categories in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating category iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_23CategoryHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":497
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating category iterators."""
 *         i = CategoryHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 497, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":498
 *         """Factory function for creating category iterators."""
 *         i = CategoryHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":499
 *         i = CategoryHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/mls.pxi":500
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":501
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":494
 *     """Iterate over categories in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating category iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.CategoryHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":503
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self) {
  cat_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  cat_datum_t *__pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/mls.pxi":504
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 504, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 504, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":505
 *     def __next__(self):
 *         super().__next__()
 *         datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         while datum != NULL and datum.isalias:
*/
  __pyx_t_7 = (__pyx_v_self->__pyx_base.curr != 0);
  if (__pyx_t_7) {
    __pyx_t_6 = ((cat_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
  } else {
    __pyx_t_6 = NULL;
  }
  __pyx_v_datum = __pyx_t_6;

  /* "setools/policyrep/mls.pxi":507
 *         datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             super().__next__()
 *             datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
*/
  while (1) {
    __pyx_t_8 = (__pyx_v_datum != NULL);
    if (__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_datum->isalias != 0);
    __pyx_t_7 = __pyx_t_8;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_7) break;

    /* "setools/policyrep/mls.pxi":508
 * 
 *         while datum != NULL and datum.isalias:
 *             super().__next__()             # <<<<<<<<<<<<<<
 *             datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
 * 
*/
    __pyx_t_4 = NULL;
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator), ((PyObject *)__pyx_v_self)};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 508, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_3 = __pyx_t_2;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 508, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":509
 *         while datum != NULL and datum.isalias:
 *             super().__next__()
 *             datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         return Category.factory(self.policy, datum)
*/
    __pyx_t_7 = (__pyx_v_self->__pyx_base.curr != 0);
    if (__pyx_t_7) {
      __pyx_t_6 = ((cat_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
    } else {
      __pyx_t_6 = NULL;
    }
    __pyx_v_datum = __pyx_t_6;
  }

  /* "setools/policyrep/mls.pxi":511
 *             datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         return Category.factory(self.policy, datum)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8Category_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_datum)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":503
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.CategoryHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":513
 *         return Category.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.cat_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self) {
  cat_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  int __pyx_t_1;
  cat_datum_t *__pyx_t_2;
  int __pyx_t_3;
  struct hashtab_node *__pyx_t_4;

  /* "setools/policyrep/mls.pxi":516
 *         cdef sepol.cat_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *         cdef size_t count = 0
 * 
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/mls.pxi":517
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0
 *         cdef size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/mls.pxi":519
 *         cdef size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_1 = (__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/mls.pxi":520
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
*/
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/mls.pxi":521
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
*/
    while (1) {
      __pyx_t_1 = (__pyx_v_node != NULL);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/mls.pxi":522
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1
*/
      __pyx_t_1 = (__pyx_v_node != 0);
      if (__pyx_t_1) {
        __pyx_t_2 = ((cat_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/mls.pxi":523
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      __pyx_t_3 = (__pyx_v_datum != NULL);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = (!(__pyx_v_datum->isalias != 0));
      __pyx_t_1 = __pyx_t_3;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/mls.pxi":524
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/mls.pxi":523
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      }

      /* "setools/policyrep/mls.pxi":526
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_4 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_4;
    }

    /* "setools/policyrep/mls.pxi":528
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/mls.pxi":530
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":513
 *         return Category.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.cat_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":532
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_23CategoryHashtabIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self) {
  cat_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  cat_datum_t *__pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/mls.pxi":533
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         cdef sepol.cat_datum_t *datum = <sepol.cat_datum_t *> self.node.datum if self.node else NULL
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":535
 *         super().reset()
 * 
 *         cdef sepol.cat_datum_t *datum = <sepol.cat_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
*/
  __pyx_t_7 = (__pyx_v_self->__pyx_base.node != 0);
  if (__pyx_t_7) {
    __pyx_t_6 = ((cat_datum_t *)__pyx_v_self->__pyx_base.node->datum);
  } else {
    __pyx_t_6 = NULL;
  }
  __pyx_v_datum = __pyx_t_6;

  /* "setools/policyrep/mls.pxi":538
 * 
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
*/
  while (1) {
    __pyx_t_8 = (__pyx_v_datum != NULL);
    if (__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_datum->isalias != 0);
    __pyx_t_7 = __pyx_t_8;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_7) break;

    /* "setools/policyrep/mls.pxi":539
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
*/
    ((struct __pyx_vtabstruct_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self)); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 539, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":541
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
*/
    __pyx_t_8 = (__pyx_v_self->__pyx_base.node == NULL);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_self->__pyx_base.bucket >= (__pyx_v_self->__pyx_base.table[0])->size);
    __pyx_t_7 = __pyx_t_8;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_7) {

      /* "setools/policyrep/mls.pxi":542
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
 *                 break             # <<<<<<<<<<<<<<
 * 
 *             datum = <sepol.cat_datum_t *> self.node.datum if self.node else NULL
*/
      goto __pyx_L4_break;

      /* "setools/policyrep/mls.pxi":541
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
*/
    }

    /* "setools/policyrep/mls.pxi":544
 *                 break
 * 
 *             datum = <sepol.cat_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_7 = (__pyx_v_self->__pyx_base.node != 0);
    if (__pyx_t_7) {
      __pyx_t_6 = ((cat_datum_t *)__pyx_v_self->__pyx_base.node->datum);
    } else {
      __pyx_t_6 = NULL;
    }
    __pyx_v_datum = __pyx_t_6;
  }
  __pyx_L4_break:;

  /* "setools/policyrep/mls.pxi":532
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.CategoryHashtabIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_23CategoryHashtabIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.CategoryHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_23CategoryHashtabIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.CategoryHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.CategoryHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":551
 *     """Iterate over sensitivity in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating category iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_26SensitivityHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":554
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating category iterators."""
 *         i = SensitivityHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 554, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":555
 *         """Factory function for creating category iterators."""
 *         i = SensitivityHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":556
 *         i = SensitivityHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/mls.pxi":557
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 557, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":558
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":551
 *     """Iterate over sensitivity in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating category iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SensitivityHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":560
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  level_datum_t *__pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/mls.pxi":561
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 561, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 561, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":562
 *     def __next__(self):
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         while datum != NULL and datum.isalias:
*/
  __pyx_t_7 = (__pyx_v_self->__pyx_base.curr != 0);
  if (__pyx_t_7) {
    __pyx_t_6 = ((level_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
  } else {
    __pyx_t_6 = NULL;
  }
  __pyx_v_datum = __pyx_t_6;

  /* "setools/policyrep/mls.pxi":564
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             super().__next__()
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
*/
  while (1) {
    __pyx_t_8 = (__pyx_v_datum != NULL);
    if (__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_datum->isalias != 0);
    __pyx_t_7 = __pyx_t_8;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_7) break;

    /* "setools/policyrep/mls.pxi":565
 * 
 *         while datum != NULL and datum.isalias:
 *             super().__next__()             # <<<<<<<<<<<<<<
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
*/
    __pyx_t_4 = NULL;
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator), ((PyObject *)__pyx_v_self)};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 565, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_3 = __pyx_t_2;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 565, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":566
 *         while datum != NULL and datum.isalias:
 *             super().__next__()
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         return Sensitivity.factory(self.policy, datum)
*/
    __pyx_t_7 = (__pyx_v_self->__pyx_base.curr != 0);
    if (__pyx_t_7) {
      __pyx_t_6 = ((level_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
    } else {
      __pyx_t_6 = NULL;
    }
    __pyx_v_datum = __pyx_t_6;
  }

  /* "setools/policyrep/mls.pxi":568
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         return Sensitivity.factory(self.policy, datum)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_11Sensitivity_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_datum)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":560
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.SensitivityHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":570
 *         return Sensitivity.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  int __pyx_t_1;
  level_datum_t *__pyx_t_2;
  int __pyx_t_3;
  struct hashtab_node *__pyx_t_4;

  /* "setools/policyrep/mls.pxi":573
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *         cdef size_t count = 0
 * 
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/mls.pxi":574
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0
 *         cdef size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/mls.pxi":576
 *         cdef size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_1 = (__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/mls.pxi":577
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
*/
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/mls.pxi":578
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
*/
    while (1) {
      __pyx_t_1 = (__pyx_v_node != NULL);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/mls.pxi":579
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1
*/
      __pyx_t_1 = (__pyx_v_node != 0);
      if (__pyx_t_1) {
        __pyx_t_2 = ((level_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/mls.pxi":580
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      __pyx_t_3 = (__pyx_v_datum != NULL);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = (!(__pyx_v_datum->isalias != 0));
      __pyx_t_1 = __pyx_t_3;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/mls.pxi":581
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/mls.pxi":580
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      }

      /* "setools/policyrep/mls.pxi":583
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_4 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_4;
    }

    /* "setools/policyrep/mls.pxi":585
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/mls.pxi":587
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":570
 *         return Sensitivity.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":589
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_26SensitivityHashtabIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  level_datum_t *__pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/mls.pxi":590
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         cdef sepol.level_datum_t *datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 590, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 590, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":592
 *         super().reset()
 * 
 *         cdef sepol.level_datum_t *datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
*/
  __pyx_t_7 = (__pyx_v_self->__pyx_base.node != 0);
  if (__pyx_t_7) {
    __pyx_t_6 = ((level_datum_t *)__pyx_v_self->__pyx_base.node->datum);
  } else {
    __pyx_t_6 = NULL;
  }
  __pyx_v_datum = __pyx_t_6;

  /* "setools/policyrep/mls.pxi":595
 * 
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
*/
  while (1) {
    __pyx_t_8 = (__pyx_v_datum != NULL);
    if (__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_datum->isalias != 0);
    __pyx_t_7 = __pyx_t_8;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_7) break;

    /* "setools/policyrep/mls.pxi":596
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
*/
    ((struct __pyx_vtabstruct_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self)); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 596, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":598
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
*/
    __pyx_t_8 = (__pyx_v_self->__pyx_base.node == NULL);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_self->__pyx_base.bucket >= (__pyx_v_self->__pyx_base.table[0])->size);
    __pyx_t_7 = __pyx_t_8;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_7) {

      /* "setools/policyrep/mls.pxi":599
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
 *                 break             # <<<<<<<<<<<<<<
 * 
 *             datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL
*/
      goto __pyx_L4_break;

      /* "setools/policyrep/mls.pxi":598
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
*/
    }

    /* "setools/policyrep/mls.pxi":601
 *                 break
 * 
 *             datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_7 = (__pyx_v_self->__pyx_base.node != 0);
    if (__pyx_t_7) {
      __pyx_t_6 = ((level_datum_t *)__pyx_v_self->__pyx_base.node->datum);
    } else {
      __pyx_t_6 = NULL;
    }
    __pyx_v_datum = __pyx_t_6;
  }
  __pyx_L4_break:;

  /* "setools/policyrep/mls.pxi":589
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.SensitivityHashtabIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_26SensitivityHashtabIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SensitivityHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_26SensitivityHashtabIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SensitivityHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SensitivityHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":608
 *     """Iterate over level declarations in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating level declarations iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_24LevelDeclHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":611
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating level declarations iterators."""
 *         i = LevelDeclHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 611, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":612
 *         """Factory function for creating level declarations iterators."""
 *         i = LevelDeclHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":613
 *         i = LevelDeclHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/mls.pxi":614
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 614, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":615
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":608
 *     """Iterate over level declarations in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating level declarations iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.LevelDeclHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":617
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  level_datum_t *__pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/mls.pxi":618
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":619
 *     def __next__(self):
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         while datum != NULL and datum.isalias:
*/
  __pyx_t_7 = (__pyx_v_self->__pyx_base.curr != 0);
  if (__pyx_t_7) {
    __pyx_t_6 = ((level_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
  } else {
    __pyx_t_6 = NULL;
  }
  __pyx_v_datum = __pyx_t_6;

  /* "setools/policyrep/mls.pxi":621
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             super().__next__()
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
*/
  while (1) {
    __pyx_t_8 = (__pyx_v_datum != NULL);
    if (__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_datum->isalias != 0);
    __pyx_t_7 = __pyx_t_8;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_7) break;

    /* "setools/policyrep/mls.pxi":622
 * 
 *         while datum != NULL and datum.isalias:
 *             super().__next__()             # <<<<<<<<<<<<<<
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
*/
    __pyx_t_4 = NULL;
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator), ((PyObject *)__pyx_v_self)};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 622, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_3 = __pyx_t_2;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 622, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":623
 *         while datum != NULL and datum.isalias:
 *             super().__next__()
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         return LevelDecl.factory(self.policy, datum)
*/
    __pyx_t_7 = (__pyx_v_self->__pyx_base.curr != 0);
    if (__pyx_t_7) {
      __pyx_t_6 = ((level_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
    } else {
      __pyx_t_6 = NULL;
    }
    __pyx_v_datum = __pyx_t_6;
  }

  /* "setools/policyrep/mls.pxi":625
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         return LevelDecl.factory(self.policy, datum)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_9LevelDecl_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_datum)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":617
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.LevelDeclHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":627
 *         return LevelDecl.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  int __pyx_t_1;
  level_datum_t *__pyx_t_2;
  int __pyx_t_3;
  struct hashtab_node *__pyx_t_4;

  /* "setools/policyrep/mls.pxi":630
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *         cdef size_t count = 0
 * 
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/mls.pxi":631
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0
 *         cdef size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/mls.pxi":633
 *         cdef size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_1 = (__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/mls.pxi":634
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
*/
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/mls.pxi":635
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
*/
    while (1) {
      __pyx_t_1 = (__pyx_v_node != NULL);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/mls.pxi":636
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1
*/
      __pyx_t_1 = (__pyx_v_node != 0);
      if (__pyx_t_1) {
        __pyx_t_2 = ((level_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/mls.pxi":637
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      __pyx_t_3 = (__pyx_v_datum != NULL);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = (!(__pyx_v_datum->isalias != 0));
      __pyx_t_1 = __pyx_t_3;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/mls.pxi":638
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/mls.pxi":637
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      }

      /* "setools/policyrep/mls.pxi":640
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_4 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_4;
    }

    /* "setools/policyrep/mls.pxi":642
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/mls.pxi":644
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":627
 *         return LevelDecl.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":646
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_24LevelDeclHashtabIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  level_datum_t *__pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/mls.pxi":647
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         cdef sepol.level_datum_t *datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 647, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 647, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":649
 *         super().reset()
 * 
 *         cdef sepol.level_datum_t *datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
*/
  __pyx_t_7 = (__pyx_v_self->__pyx_base.node != 0);
  if (__pyx_t_7) {
    __pyx_t_6 = ((level_datum_t *)__pyx_v_self->__pyx_base.node->datum);
  } else {
    __pyx_t_6 = NULL;
  }
  __pyx_v_datum = __pyx_t_6;

  /* "setools/policyrep/mls.pxi":652
 * 
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
*/
  while (1) {
    __pyx_t_8 = (__pyx_v_datum != NULL);
    if (__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_datum->isalias != 0);
    __pyx_t_7 = __pyx_t_8;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_7) break;

    /* "setools/policyrep/mls.pxi":653
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
*/
    ((struct __pyx_vtabstruct_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self)); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 653, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":655
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
*/
    __pyx_t_8 = (__pyx_v_self->__pyx_base.node == NULL);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_self->__pyx_base.bucket >= (__pyx_v_self->__pyx_base.table[0])->size);
    __pyx_t_7 = __pyx_t_8;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_7) {

      /* "setools/policyrep/mls.pxi":656
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
 *                 break             # <<<<<<<<<<<<<<
 * 
 *             datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL
*/
      goto __pyx_L4_break;

      /* "setools/policyrep/mls.pxi":655
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
*/
    }

    /* "setools/policyrep/mls.pxi":658
 *                 break
 * 
 *             datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_7 = (__pyx_v_self->__pyx_base.node != 0);
    if (__pyx_t_7) {
      __pyx_t_6 = ((level_datum_t *)__pyx_v_self->__pyx_base.node->datum);
    } else {
      __pyx_t_6 = NULL;
    }
    __pyx_v_datum = __pyx_t_6;
  }
  __pyx_L4_break:;

  /* "setools/policyrep/mls.pxi":646
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.LevelDeclHashtabIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_24LevelDeclHashtabIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.LevelDeclHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_24LevelDeclHashtabIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.LevelDeclHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.LevelDeclHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":668
 *     """Iterate over a category ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):
 *         """Factory function for creating CategoryEbitmapIterator."""
*/

static PyObject *__pyx_f_7setools_9policyrep_23CategoryEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":671
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):
 *         """Factory function for creating CategoryEbitmapIterator."""
 *         i = CategoryEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = symbol
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 671, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":672
 *         """Factory function for creating CategoryEbitmapIterator."""
 *         i = CategoryEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = symbol
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":673
 *         i = CategoryEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = symbol             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.bmap = __pyx_v_symbol;

  /* "setools/policyrep/mls.pxi":674
 *         i.policy = policy
 *         i.bmap = symbol
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":675
 *         i.bmap = symbol
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":668
 *     """Iterate over a category ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):
 *         """Factory function for creating CategoryEbitmapIterator."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.CategoryEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":677
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Category.factory(self.policy, self.policy.category_value_to_datum(self.bit))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  cat_datum_t *__pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/mls.pxi":678
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Category.factory(self.policy, self.policy.category_value_to_datum(self.bit))
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":679
 *     def __next__(self):
 *         super().__next__()
 *         return Category.factory(self.policy, self.policy.category_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_6 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 679, __pyx_L1_error)
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_8Category_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_t_6)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":677
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Category.factory(self.policy, self.policy.category_value_to_datum(self.bit))
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.CategoryEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_23CategoryEbitmapIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.CategoryEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_23CategoryEbitmapIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.CategoryEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.CategoryEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":23
 *         object rng
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline MLSRule factory(SELinuxPolicy policy, sepol.range_trans_t *symbol,
 *                                 sepol.mls_range_t *rng):
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_f_7setools_9policyrep_7MLSRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, range_trans_t *__pyx_v_symbol, mls_range_t *__pyx_v_rng) {
  struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  type_datum_t *__pyx_t_3;
  class_datum_t *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mlsrule.pxi":27
 *                                 sepol.mls_range_t *rng):
 *         """Factory function for creating MLSRule objects."""
 *         cdef MLSRule r = MLSRule.__new__(MLSRule)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_MLSRule(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_MLSRule), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 27, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mlsrule.pxi":28
 *         """Factory function for creating MLSRule objects."""
 *         cdef MLSRule r = MLSRule.__new__(MLSRule)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = MLSRuletype.range_transition
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy);
  __pyx_v_r->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mlsrule.pxi":29
 *         cdef MLSRule r = MLSRule.__new__(MLSRule)
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         r.ruletype = MLSRuletype.range_transition
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.source_type - 1))
*/
  __pyx_v_r->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/mlsrule.pxi":30
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = MLSRuletype.range_transition             # <<<<<<<<<<<<<<
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.target_type - 1))
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_MLSRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_range_transition); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/mlsrule.pxi":31
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = MLSRuletype.range_transition
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.source_type - 1))             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.target_class - 1))
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->source_type - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(14, 31, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.source);
  __pyx_v_r->__pyx_base.source = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/mlsrule.pxi":32
 *         r.ruletype = MLSRuletype.range_transition
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.target_type - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.target_class - 1))
 *         r.rng = Range.factory(policy, rng)
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->target_type - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(14, 32, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.target);
  __pyx_v_r->__pyx_base.target = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/mlsrule.pxi":33
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.target_class - 1))             # <<<<<<<<<<<<<<
 *         r.rng = Range.factory(policy, rng)
 *         r.origin = None
*/
  __pyx_t_4 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->target_class - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(14, 33, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_t_4)); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->tclass);
  __Pyx_DECREF((PyObject *)__pyx_v_r->tclass);
  __pyx_v_r->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mlsrule.pxi":34
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.target_class - 1))
 *         r.rng = Range.factory(policy, rng)             # <<<<<<<<<<<<<<
 *         r.origin = None
 *         return r
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_5Range_factory(__pyx_v_policy, __pyx_v_rng)); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->rng);
  __Pyx_DECREF(__pyx_v_r->rng);
  __pyx_v_r->rng = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/mlsrule.pxi":35
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.target_class - 1))
 *         r.rng = Range.factory(policy, rng)
 *         r.origin = None             # <<<<<<<<<<<<<<
 *         return r
 * 
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.origin);
  __pyx_v_r->__pyx_base.origin = Py_None;

  /* "setools/policyrep/mlsrule.pxi":36
 *         r.rng = Range.factory(policy, rng)
 *         r.origin = None
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":23
 *         object rng
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline MLSRule factory(SELinuxPolicy policy, sepol.range_trans_t *symbol,
 *                                 sepol.mls_range_t *rng):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":38
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|None")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_7MLSRule_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_7MLSRule_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule___hash__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_7MLSRule___hash__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[8];
  PyObject *__pyx_t_6 = NULL;
  Py_hash_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mlsrule.pxi":39
 * 
 *     def __hash__(self):
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|None")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5[0] = __pyx_t_1;
  __pyx_t_5[1] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_5[2] = __pyx_t_2;
  __pyx_t_5[3] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_5[4] = __pyx_t_3;
  __pyx_t_5[5] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_5[6] = __pyx_t_4;
  __pyx_t_5[7] = __pyx_mstate_global->__pyx_kp_u_None_None;
  __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_5, 8, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 10, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
  if (unlikely(!__pyx_t_6)) __PYX_ERR(14, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = PyObject_Hash(__pyx_t_6); if (unlikely(__pyx_t_7 == ((Py_hash_t)-1))) __PYX_ERR(14, 39, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":38
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|None")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":41
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|None")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_2__lt__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_2__lt__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/mlsrule.pxi":42
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":41
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|None")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":44
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default range."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_7default_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_7default___get__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_7default___get__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/mlsrule.pxi":47
 *     def default(self):
 *         """The rule's default range."""
 *         return self.rng             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->rng);
  __pyx_r = __pyx_v_self->rng;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":44
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default range."""
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_7MLSRule_6generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/mlsrule.pxi":49
 *         return self.rng
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef MLSRule r
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_7MLSRule_4expand, "Expand the rule into an equivalent set of rules without attributes.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_7MLSRule_5expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7MLSRule_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_7MLSRule_4expand};
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_4expand(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_4expand(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_8_expand(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(14, 49, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_7MLSRule_6generator1, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_expand, __pyx_mstate_global->__pyx_n_u_MLSRule_expand, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(14, 49, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.MLSRule.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_7MLSRule_6generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *(*__pyx_t_11)(PyObject *);
  uintptr_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L11_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(14, 49, __pyx_L1_error)
  }

  /* "setools/policyrep/mlsrule.pxi":52
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef MLSRule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = MLSRule.__new__(MLSRule)
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.origin == Py_None);
  if (__pyx_t_1) {

    /* "setools/policyrep/mlsrule.pxi":53
 *         cdef MLSRule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = MLSRule.__new__(MLSRule)
 *                 r.policy = self.policy
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 53, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(14, 53, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_self->__pyx_base.source;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 53, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_8 = __pyx_cur_scope->__pyx_v_self->__pyx_base.target;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(14, 53, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_6};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 53, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5);
      __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(14, 53, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(14, 53, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(14, 53, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference);
          ++__pyx_t_9;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(14, 53, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9));
          #else
          __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_9);
          #endif
          ++__pyx_t_9;
        }
        if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 53, __pyx_L1_error)
      } else {
        __pyx_t_2 = __pyx_t_10(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(14, 53, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_2);
      if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
        PyObject* sequence = __pyx_t_2;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(14, 53, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_6);
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_4);
        } else {
          __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_6)) __PYX_ERR(14, 53, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_6);
          __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 53, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_4);
        }
        #else
        __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(14, 53, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 53, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 53, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3);
        index = 0; __pyx_t_6 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_3), 2) < (0)) __PYX_ERR(14, 53, __pyx_L1_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(14, 53, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;

      /* "setools/policyrep/mlsrule.pxi":54
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = MLSRule.__new__(MLSRule)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
*/
      __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_MLSRule(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_MLSRule), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 54, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
      __Pyx_XGOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_t_2));
      __Pyx_GIVEREF((PyObject *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/mlsrule.pxi":55
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = MLSRule.__new__(MLSRule)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/mlsrule.pxi":56
 *                 r = MLSRule.__new__(MLSRule)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
*/
      __pyx_t_12 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.key = __pyx_t_12;

      /* "setools/policyrep/mlsrule.pxi":57
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
*/
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "setools/policyrep/mlsrule.pxi":58
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/mlsrule.pxi":59
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.rng = self.rng
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/mlsrule.pxi":60
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.rng = self.rng
 *                 r.origin = self
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->tclass);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->tclass);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->tclass);
      __pyx_cur_scope->__pyx_v_r->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/mlsrule.pxi":61
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.rng = self.rng             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
*/
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->rng;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->rng);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->rng);
      __pyx_cur_scope->__pyx_v_r->rng = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "setools/policyrep/mlsrule.pxi":62
 *                 r.tclass = self.tclass
 *                 r.rng = self.rng
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/mlsrule.pxi":63
 *                 r.rng = self.rng
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(14, 63, __pyx_L1_error)

      /* "setools/policyrep/mlsrule.pxi":53
 *         cdef MLSRule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = MLSRule.__new__(MLSRule)
 *                 r.policy = self.policy
*/
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/mlsrule.pxi":52
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef MLSRule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = MLSRule.__new__(MLSRule)
*/
    goto __pyx_L4;
  }

  /* "setools/policyrep/mlsrule.pxi":67
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  /*else*/ {
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L11_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(14, 67, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/mlsrule.pxi":49
 *         return self.rng
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef MLSRule r
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":69
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7MLSRule_8statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7MLSRule_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_7statement(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_7statement(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[10];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mlsrule.pxi":70
 * 
 *     def statement(self):
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_5)) __PYX_ERR(14, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(14, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7[0] = __pyx_t_1;
  __pyx_t_7[1] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_7[2] = __pyx_t_2;
  __pyx_t_7[3] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_7[4] = __pyx_t_3;
  __pyx_t_7[5] = __pyx_mstate_global->__pyx_kp_u__13;
  __pyx_t_7[6] = __pyx_t_4;
  __pyx_t_7[7] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_7[8] = __pyx_t_6;
  __pyx_t_7[9] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_7, 10, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 5 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(14, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":69
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":20
 * 
 *     cdef:
 *         readonly ObjClass tclass             # <<<<<<<<<<<<<<
 *         object rng
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_6tclass_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_6tclass___get__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->tclass);
  __pyx_r = ((PyObject *)__pyx_v_self->tclass);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7MLSRule_10__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7MLSRule_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.rng, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.extended); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(9); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->__pyx_base.origin) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->rng);
  __Pyx_GIVEREF(__pyx_v_self->rng);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->rng) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_self->__pyx_base.ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.source);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->__pyx_base.source) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.target);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 7, __pyx_v_self->__pyx_base.target) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 8, ((PyObject *)__pyx_v_self->tclass)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.rng, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.rng, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.rng is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.rng, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.rng is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x4c51559, None), state
*/
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->__pyx_base.origin != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->rng != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.source != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.target != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->tclass) != Py_None);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.rng is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MLSRule, (type(self), 0x4c51559, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.origin is not None or self.policy is not None or self.rng is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x4c51559, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x4c51559, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_MLSRule); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_80024921);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_80024921);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_80024921) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.rng is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MLSRule, (type(self), 0x4c51559, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_MLSRule, (type(self), 0x4c51559, None), state
 *     else:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x4c51559, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MLSRule__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_MLSRule); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_80024921);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_80024921);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_80024921) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x4c51559, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MLSRule__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7MLSRule_12__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7MLSRule_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.MLSRule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_MLSRule, (type(self), 0x4c51559, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MLSRule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_MLSRule__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x4c51559, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MLSRule__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":80
 *     """Iterate over MLS rules in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating MLS rule iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_15MLSRuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mlsrule.pxi":83
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating MLS rule iterators."""
 *         i = MLSRuleIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_MLSRuleIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 83, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mlsrule.pxi":84
 *         """Factory function for creating MLS rule iterators."""
 *         i = MLSRuleIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mlsrule.pxi":85
 *         i = MLSRuleIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/mlsrule.pxi":86
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mlsrule.pxi":87
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":80
 *     """Iterate over MLS rules in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating MLS rule iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.MLSRuleIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":89
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return MLSRule.factory(self.policy, <sepol.range_trans_t *>self.curr.key,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_15MLSRuleIterator___next__(((struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator___next__(struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/mlsrule.pxi":90
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return MLSRule.factory(self.policy, <sepol.range_trans_t *>self.curr.key,
 *                                <sepol.mls_range_t *>self.curr.datum)
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_MLSRuleIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mlsrule.pxi":91
 *     def __next__(self):
 *         super().__next__()
 *         return MLSRule.factory(self.policy, <sepol.range_trans_t *>self.curr.key,             # <<<<<<<<<<<<<<
 *                                <sepol.mls_range_t *>self.curr.datum)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/mlsrule.pxi":92
 *         super().__next__()
 *         return MLSRule.factory(self.policy, <sepol.range_trans_t *>self.curr.key,
 *                                <sepol.mls_range_t *>self.curr.datum)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_7MLSRule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((range_trans_t *)__pyx_v_self->__pyx_base.curr->key), ((mls_range_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":89
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return MLSRule.factory(self.policy, <sepol.range_trans_t *>self.curr.key,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.MLSRuleIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15MLSRuleIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15MLSRuleIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_15MLSRuleIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.MLSRuleIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15MLSRuleIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15MLSRuleIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.MLSRuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_15MLSRuleIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.MLSRuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":18
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < IbpkeyconRange.MIN or self.high < IbpkeyconRange.MIN:
 *             raise ValueError(f"Partition keys must be >= {IbpkeyconRange.MIN:0=#6x}: {self}")
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14IbpkeyconRange_1__post_init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14IbpkeyconRange_1__post_init__ = {"__post_init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14IbpkeyconRange_1__post_init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14IbpkeyconRange_1__post_init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__post_init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(15, 18, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 18, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__post_init__", 0) < (0)) __PYX_ERR(15, 18, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__post_init__", 1, 1, 1, i); __PYX_ERR(15, 18, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 18, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__post_init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(15, 18, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconRange.__post_init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_14IbpkeyconRange___post_init__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14IbpkeyconRange___post_init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[4];
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__post_init__", 0);

  /* "setools/policyrep/netcontext.pxi":19
 * 
 *     def __post_init__(self):
 *         if self.low < IbpkeyconRange.MIN or self.high < IbpkeyconRange.MIN:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Partition keys must be >= {IbpkeyconRange.MIN:0=#6x}: {self}")
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(15, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!__pyx_t_5) {
  } else {
    __pyx_t_1 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(15, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_1 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/netcontext.pxi":20
 *     def __post_init__(self):
 *         if self.low < IbpkeyconRange.MIN or self.high < IbpkeyconRange.MIN:
 *             raise ValueError(f"Partition keys must be >= {IbpkeyconRange.MIN:0=#6x}: {self}")             # <<<<<<<<<<<<<<
 * 
 *         if self.low > IbpkeyconRange.MAX or self.high > IbpkeyconRange.MAX:
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Format(__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Partition_keys_must_be;
    __pyx_t_7[1] = __pyx_t_3;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__24;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, 26 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_8};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 20, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(15, 20, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":19
 * 
 *     def __post_init__(self):
 *         if self.low < IbpkeyconRange.MIN or self.high < IbpkeyconRange.MIN:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Partition keys must be >= {IbpkeyconRange.MIN:0=#6x}: {self}")
 * 
*/
  }

  /* "setools/policyrep/netcontext.pxi":22
 *             raise ValueError(f"Partition keys must be >= {IbpkeyconRange.MIN:0=#6x}: {self}")
 * 
 *         if self.low > IbpkeyconRange.MAX or self.high > IbpkeyconRange.MAX:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Partition keys must be <= {IbpkeyconRange.MAX:0=#6x}: {self}")
 * 
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(15, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!__pyx_t_5) {
  } else {
    __pyx_t_1 = __pyx_t_5;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(15, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_5;
  __pyx_L7_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/netcontext.pxi":23
 * 
 *         if self.low > IbpkeyconRange.MAX or self.high > IbpkeyconRange.MAX:
 *             raise ValueError(f"Partition keys must be <= {IbpkeyconRange.MAX:0=#6x}: {self}")             # <<<<<<<<<<<<<<
 * 
 *         if self.low > self.high:
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 23, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 23, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_Format(__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 23, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 23, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Partition_keys_must_be_2;
    __pyx_t_7[1] = __pyx_t_8;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__24;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, 26 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 23, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 23, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(15, 23, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":22
 *             raise ValueError(f"Partition keys must be >= {IbpkeyconRange.MIN:0=#6x}: {self}")
 * 
 *         if self.low > IbpkeyconRange.MAX or self.high > IbpkeyconRange.MAX:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Partition keys must be <= {IbpkeyconRange.MAX:0=#6x}: {self}")
 * 
*/
  }

  /* "setools/policyrep/netcontext.pxi":25
 *             raise ValueError(f"Partition keys must be <= {IbpkeyconRange.MAX:0=#6x}: {self}")
 * 
 *         if self.low > self.high:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"The low partition key must be <= the high partition key: {self}")
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(15, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/netcontext.pxi":26
 * 
 *         if self.low > self.high:
 *             raise ValueError(f"The low partition key must be <= the high partition key: {self}")             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
    __pyx_t_3 = NULL;
    __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 26, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_The_low_partition_key_must_be_th, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 26, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 26, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(15, 26, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":25
 *             raise ValueError(f"Partition keys must be <= {IbpkeyconRange.MAX:0=#6x}: {self}")
 * 
 *         if self.low > self.high:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"The low partition key must be <= the high partition key: {self}")
 * 
*/
  }

  /* "setools/policyrep/netcontext.pxi":18
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < IbpkeyconRange.MIN or self.high < IbpkeyconRange.MIN:
 *             raise ValueError(f"Partition keys must be >= {IbpkeyconRange.MIN:0=#6x}: {self}")
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconRange.__post_init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":28
 *             raise ValueError(f"The low partition key must be <= the high partition key: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14IbpkeyconRange_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14IbpkeyconRange_3__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14IbpkeyconRange_3__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14IbpkeyconRange_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(15, 28, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 28, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(15, 28, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(15, 28, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 28, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(15, 28, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconRange.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_14IbpkeyconRange_2__str__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14IbpkeyconRange_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/netcontext.pxi":29
 * 
 *     def __str__(self):
 *         if self.low == self.high:             # <<<<<<<<<<<<<<
 *             return f"{self.low:0=#6x}"
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 29, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(15, 29, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {

    /* "setools/policyrep/netcontext.pxi":30
 *     def __str__(self):
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"             # <<<<<<<<<<<<<<
 *         else:
 *             return f"{self.low:0=#6x}-{self.high:0=#6x}"
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 30, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_Format(__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 30, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/netcontext.pxi":29
 * 
 *     def __str__(self):
 *         if self.low == self.high:             # <<<<<<<<<<<<<<
 *             return f"{self.low:0=#6x}"
 *         else:
*/
  }

  /* "setools/policyrep/netcontext.pxi":32
 *             return f"{self.low:0=#6x}"
 *         else:
 *             return f"{self.low:0=#6x}-{self.high:0=#6x}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_Format(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_Format(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5[0] = __pyx_t_3;
    __pyx_t_5[1] = __pyx_mstate_global->__pyx_kp_u__20;
    __pyx_t_5[2] = __pyx_t_1;
    __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
    if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/netcontext.pxi":28
 *             raise ValueError(f"The low partition key must be <= the high partition key: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconRange.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":46
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=65535)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < PortconRange.MIN or self.high < PortconRange.MIN:
 *             raise ValueError(f"Port numbers must be >= {PortconRange.MIN}: {self}")
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PortconRange_1__post_init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12PortconRange_1__post_init__ = {"__post_init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PortconRange_1__post_init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12PortconRange_1__post_init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__post_init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(15, 46, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 46, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__post_init__", 0) < (0)) __PYX_ERR(15, 46, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__post_init__", 1, 1, 1, i); __PYX_ERR(15, 46, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 46, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__post_init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(15, 46, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PortconRange.__post_init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12PortconRange___post_init__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PortconRange___post_init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[4];
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__post_init__", 0);

  /* "setools/policyrep/netcontext.pxi":47
 * 
 *     def __post_init__(self):
 *         if self.low < PortconRange.MIN or self.high < PortconRange.MIN:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Port numbers must be >= {PortconRange.MIN}: {self}")
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PortconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(15, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!__pyx_t_5) {
  } else {
    __pyx_t_1 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PortconRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(15, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_1 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/netcontext.pxi":48
 *     def __post_init__(self):
 *         if self.low < PortconRange.MIN or self.high < PortconRange.MIN:
 *             raise ValueError(f"Port numbers must be >= {PortconRange.MIN}: {self}")             # <<<<<<<<<<<<<<
 * 
 *         if self.low > PortconRange.MAX or self.high > PortconRange.MAX:
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PortconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_6, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Port_numbers_must_be;
    __pyx_t_7[1] = __pyx_t_3;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__24;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, 24 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_8};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 48, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(15, 48, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":47
 * 
 *     def __post_init__(self):
 *         if self.low < PortconRange.MIN or self.high < PortconRange.MIN:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Port numbers must be >= {PortconRange.MIN}: {self}")
 * 
*/
  }

  /* "setools/policyrep/netcontext.pxi":50
 *             raise ValueError(f"Port numbers must be >= {PortconRange.MIN}: {self}")
 * 
 *         if self.low > PortconRange.MAX or self.high > PortconRange.MAX:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Port numbers must be <= {PortconRange.MAX}: {self}")
 * 
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PortconRange); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(15, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!__pyx_t_5) {
  } else {
    __pyx_t_1 = __pyx_t_5;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PortconRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(15, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_5;
  __pyx_L7_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/netcontext.pxi":51
 * 
 *         if self.low > PortconRange.MAX or self.high > PortconRange.MAX:
 *             raise ValueError(f"Port numbers must be <= {PortconRange.MAX}: {self}")             # <<<<<<<<<<<<<<
 * 
 *         if self.low > self.high:
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PortconRange); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_6, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Port_numbers_must_be_2;
    __pyx_t_7[1] = __pyx_t_8;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__24;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, 24 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 51, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(15, 51, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":50
 *             raise ValueError(f"Port numbers must be >= {PortconRange.MIN}: {self}")
 * 
 *         if self.low > PortconRange.MAX or self.high > PortconRange.MAX:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Port numbers must be <= {PortconRange.MAX}: {self}")
 * 
*/
  }

  /* "setools/policyrep/netcontext.pxi":53
 *             raise ValueError(f"Port numbers must be <= {PortconRange.MAX}: {self}")
 * 
 *         if self.low > self.high:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"The low port must be <= the high port: {self}")
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(15, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/netcontext.pxi":54
 * 
 *         if self.low > self.high:
 *             raise ValueError(f"The low port must be <= the high port: {self}")             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
    __pyx_t_3 = NULL;
    __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 54, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_The_low_port_must_be_the_high_po, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 54, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 54, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(15, 54, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":53
 *             raise ValueError(f"Port numbers must be <= {PortconRange.MAX}: {self}")
 * 
 *         if self.low > self.high:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"The low port must be <= the high port: {self}")
 * 
*/
  }

  /* "setools/policyrep/netcontext.pxi":46
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=65535)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < PortconRange.MIN or self.high < PortconRange.MIN:
 *             raise ValueError(f"Port numbers must be >= {PortconRange.MIN}: {self}")
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.PortconRange.__post_init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":56
 *             raise ValueError(f"The low port must be <= the high port: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return str(self.low)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PortconRange_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12PortconRange_3__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PortconRange_3__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12PortconRange_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(15, 56, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 56, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(15, 56, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(15, 56, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 56, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(15, 56, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PortconRange.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12PortconRange_2__str__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PortconRange_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/netcontext.pxi":57
 * 
 *     def __str__(self):
 *         if self.low == self.high:             # <<<<<<<<<<<<<<
 *             return str(self.low)
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(15, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {

    /* "setools/policyrep/netcontext.pxi":58
 *     def __str__(self):
 *         if self.low == self.high:
 *             return str(self.low)             # <<<<<<<<<<<<<<
 *         else:
 *             return f"{self.low}-{self.high}"
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/netcontext.pxi":57
 * 
 *     def __str__(self):
 *         if self.low == self.high:             # <<<<<<<<<<<<<<
 *             return str(self.low)
 *         else:
*/
  }

  /* "setools/policyrep/netcontext.pxi":60
 *             return str(self.low)
 *         else:
 *             return f"{self.low}-{self.high}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5[0] = __pyx_t_3;
    __pyx_t_5[1] = __pyx_mstate_global->__pyx_kp_u__20;
    __pyx_t_5[2] = __pyx_t_1;
    __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
    if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/netcontext.pxi":56
 *             raise ValueError(f"The low port must be <= the high port: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return str(self.low)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PortconRange.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":74
 *         readonly unsigned int port
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Ibendportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Ibendportcon objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_f_7setools_9policyrep_12Ibendportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_i = 0;
  struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  uint8_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":77
 *     cdef inline Ibendportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Ibendportcon objects."""
 *         cdef Ibendportcon i = Ibendportcon.__new__(Ibendportcon)             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Ibendportcon(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibendportcon), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 77, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":78
 *         """Factory function for creating Ibendportcon objects."""
 *         cdef Ibendportcon i = Ibendportcon.__new__(Ibendportcon)
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.key = <uintptr_t>symbol
 *         i.name = intern(symbol.u.ibendport.dev_name)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":79
 *         cdef Ibendportcon i = Ibendportcon.__new__(Ibendportcon)
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         i.name = intern(symbol.u.ibendport.dev_name)
 *         i.port = symbol.u.ibendport.port
*/
  __pyx_v_i->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/netcontext.pxi":80
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 *         i.name = intern(symbol.u.ibendport.dev_name)             # <<<<<<<<<<<<<<
 *         i.port = symbol.u.ibendport.port
 *         i.context = Context.factory(policy, symbol.context)
*/
  __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_symbol->u.ibendport.dev_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(15, 80, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_i->name);
  __Pyx_DECREF(__pyx_v_i->name);
  __pyx_v_i->name = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":81
 *         i.key = <uintptr_t>symbol
 *         i.name = intern(symbol.u.ibendport.dev_name)
 *         i.port = symbol.u.ibendport.port             # <<<<<<<<<<<<<<
 *         i.context = Context.factory(policy, symbol.context)
 *         return i
*/
  __pyx_t_3 = __pyx_v_symbol->u.ibendport.port;
  __pyx_v_i->port = __pyx_t_3;

  /* "setools/policyrep/netcontext.pxi":82
 *         i.name = intern(symbol.u.ibendport.dev_name)
 *         i.port = symbol.u.ibendport.port
 *         i.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.context);
  __pyx_v_i->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":83
 *         i.port = symbol.u.ibendport.port
 *         i.context = Context.factory(policy, symbol.context)
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = __pyx_v_i;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":74
 *         readonly unsigned int port
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Ibendportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Ibendportcon objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":85
 *         return i
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"ibendportcon|{self.name}|{self.port}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_12Ibendportcon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_12Ibendportcon_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon___hash__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_12Ibendportcon___hash__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[4];
  PyObject *__pyx_t_4 = NULL;
  Py_hash_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/netcontext.pxi":86
 * 
 *     def __hash__(self):
 *         return hash(f"ibendportcon|{self.name}|{self.port}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyUnicode_From_unsigned_int(__pyx_v_self->port, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_ibendportcon;
  __pyx_t_3[1] = __pyx_t_1;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_3[3] = __pyx_t_2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = PyObject_Hash(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_hash_t)-1))) __PYX_ERR(15, 86, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":85
 *         return i
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"ibendportcon|{self.name}|{self.port}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":88
 *         return hash(f"ibendportcon|{self.name}|{self.port}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/netcontext.pxi":90
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 90, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":88
 *         return hash(f"ibendportcon|{self.name}|{self.port}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":92
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"ibendportcon {self.name} {self.port} {self.context}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12Ibendportcon_5statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Ibendportcon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_4statement(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4statement(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[6];
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/netcontext.pxi":93
 * 
 *     def statement(self):
 *         return f"ibendportcon {self.name} {self.port} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyUnicode_From_unsigned_int(__pyx_v_self->port, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_ibendportcon_2;
  __pyx_t_4[1] = __pyx_t_1;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[3] = __pyx_t_2;
  __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[5] = __pyx_t_3;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 6, 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":92
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"ibendportcon {self.name} {self.port} {self.context}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":71
 * 
 *     cdef:
 *         readonly str name             # <<<<<<<<<<<<<<
 *         readonly unsigned int port
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_4name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_4name___get__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4name___get__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":72
 *     cdef:
 *         readonly str name
 *         readonly unsigned int port             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_4port_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_4port_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_4port___get__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4port___get__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_unsigned_int(__pyx_v_self->port); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.port.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12Ibendportcon_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Ibendportcon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.name, self.policy, self.port)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_From_unsigned_int(__pyx_v_self->port); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->name);
  __Pyx_GIVEREF(__pyx_v_self->name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.name, self.policy, self.port)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.name, self.policy, self.port)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.name, self.policy, self.port)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd3c8841, None), state
*/
  /*else*/ {
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->name != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd3c8841, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd3c8841, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd3c8841, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ibendportcon); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_222070849);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_222070849);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_222070849) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd3c8841, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd3c8841, None), state
 *     else:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd3c8841, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ibendportcon__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ibendportcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_222070849);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_222070849);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_222070849) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd3c8841, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ibendportcon__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12Ibendportcon_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Ibendportcon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd3c8841, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ibendportcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ibendportcon__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd3c8841, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ibendportcon__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":104
 *         readonly object pkeys
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Ibpkeycon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Ibpkeycon objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_f_7setools_9policyrep_9Ibpkeycon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_i = 0;
  char *__pyx_v_prefix;
  uint32_t *__pyx_v_full_address;
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":108
 *         """Factory function for creating Ibpkeycon objects."""
 *         cdef:
 *             Ibpkeycon i = Ibpkeycon.__new__(Ibpkeycon)             # <<<<<<<<<<<<<<
 *             char * prefix
 *             uint32_t *full_address
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Ibpkeycon(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibpkeycon), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 108, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":112
 *             uint32_t *full_address
 * 
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.key = <uintptr_t>symbol
 *         i.pkeys = IbpkeyconRange(symbol.u.ibpkey.low_pkey, symbol.u.ibpkey.high_pkey)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":113
 * 
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         i.pkeys = IbpkeyconRange(symbol.u.ibpkey.low_pkey, symbol.u.ibpkey.high_pkey)
 *         i.context = Context.factory(policy, symbol.context)
*/
  __pyx_v_i->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/netcontext.pxi":114
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 *         i.pkeys = IbpkeyconRange(symbol.u.ibpkey.low_pkey, symbol.u.ibpkey.high_pkey)             # <<<<<<<<<<<<<<
 *         i.context = Context.factory(policy, symbol.context)
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyLong_From_uint16_t(__pyx_v_symbol->u.ibpkey.low_pkey); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyLong_From_uint16_t(__pyx_v_symbol->u.ibpkey.high_pkey); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->pkeys);
  __Pyx_DECREF(__pyx_v_i->pkeys);
  __pyx_v_i->pkeys = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":115
 *         i.key = <uintptr_t>symbol
 *         i.pkeys = IbpkeyconRange(symbol.u.ibpkey.low_pkey, symbol.u.ibpkey.high_pkey)
 *         i.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 * 
 *         #
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.context);
  __pyx_v_i->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":121
 *         # prefix.  Create a full IPv6 address for inet_ntop use
 *         #
 *         full_address = <uint32_t*>PyMem_Malloc(4 * sizeof(uint32_t))             # <<<<<<<<<<<<<<
 *         if full_address == NULL:
 *             raise MemoryError
*/
  __pyx_v_full_address = ((uint32_t *)PyMem_Malloc((4 * (sizeof(uint32_t)))));

  /* "setools/policyrep/netcontext.pxi":122
 *         #
 *         full_address = <uint32_t*>PyMem_Malloc(4 * sizeof(uint32_t))
 *         if full_address == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  __pyx_t_7 = (__pyx_v_full_address == NULL);
  if (unlikely(__pyx_t_7)) {

    /* "setools/policyrep/netcontext.pxi":123
 *         full_address = <uint32_t*>PyMem_Malloc(4 * sizeof(uint32_t))
 *         if full_address == NULL:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         memset(full_address, 0, 4 * sizeof(uint32_t))
*/
    PyErr_NoMemory(); __PYX_ERR(15, 123, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":122
 *         #
 *         full_address = <uint32_t*>PyMem_Malloc(4 * sizeof(uint32_t))
 *         if full_address == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  }

  /* "setools/policyrep/netcontext.pxi":125
 *             raise MemoryError
 * 
 *         memset(full_address, 0, 4 * sizeof(uint32_t))             # <<<<<<<<<<<<<<
 *         memcpy(full_address, &symbol.u.ibpkey.subnet_prefix, sizeof(uint64_t))
 * 
*/
  (void)(memset(__pyx_v_full_address, 0, (4 * (sizeof(uint32_t)))));

  /* "setools/policyrep/netcontext.pxi":126
 * 
 *         memset(full_address, 0, 4 * sizeof(uint32_t))
 *         memcpy(full_address, &symbol.u.ibpkey.subnet_prefix, sizeof(uint64_t))             # <<<<<<<<<<<<<<
 * 
 *         #
*/
  (void)(memcpy(__pyx_v_full_address, (&__pyx_v_symbol->u.ibpkey.subnet_prefix), (sizeof(uint64_t))));

  /* "setools/policyrep/netcontext.pxi":131
 *         # Create IPv6Address object for the subnet prefix
 *         #
 *         prefix = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))             # <<<<<<<<<<<<<<
 *         if prefix == NULL:
 *             PyMem_Free(full_address)
*/
  __pyx_v_prefix = ((char *)PyMem_Malloc((INET6_ADDRSTRLEN * (sizeof(char)))));

  /* "setools/policyrep/netcontext.pxi":132
 *         #
 *         prefix = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if prefix == NULL:             # <<<<<<<<<<<<<<
 *             PyMem_Free(full_address)
 *             raise MemoryError
*/
  __pyx_t_7 = (__pyx_v_prefix == NULL);
  if (unlikely(__pyx_t_7)) {

    /* "setools/policyrep/netcontext.pxi":133
 *         prefix = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if prefix == NULL:
 *             PyMem_Free(full_address)             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
    PyMem_Free(__pyx_v_full_address);

    /* "setools/policyrep/netcontext.pxi":134
 *         if prefix == NULL:
 *             PyMem_Free(full_address)
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         inet_ntop(AF_INET6, full_address, prefix, INET6_ADDRSTRLEN)
*/
    PyErr_NoMemory(); __PYX_ERR(15, 134, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":132
 *         #
 *         prefix = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if prefix == NULL:             # <<<<<<<<<<<<<<
 *             PyMem_Free(full_address)
 *             raise MemoryError
*/
  }

  /* "setools/policyrep/netcontext.pxi":136
 *             raise MemoryError
 * 
 *         inet_ntop(AF_INET6, full_address, prefix, INET6_ADDRSTRLEN)             # <<<<<<<<<<<<<<
 *         i.subnet_prefix = ipaddress.IPv6Address(prefix)
 * 
*/
  (void)(inet_ntop(AF_INET6, __pyx_v_full_address, __pyx_v_prefix, INET6_ADDRSTRLEN));

  /* "setools/policyrep/netcontext.pxi":137
 * 
 *         inet_ntop(AF_INET6, full_address, prefix, INET6_ADDRSTRLEN)
 *         i.subnet_prefix = ipaddress.IPv6Address(prefix)             # <<<<<<<<<<<<<<
 * 
 *         PyMem_Free(full_address)
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ipaddress); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_IPv6Address); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyUnicode_FromString(__pyx_v_prefix); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->subnet_prefix);
  __Pyx_DECREF(__pyx_v_i->subnet_prefix);
  __pyx_v_i->subnet_prefix = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":139
 *         i.subnet_prefix = ipaddress.IPv6Address(prefix)
 * 
 *         PyMem_Free(full_address)             # <<<<<<<<<<<<<<
 *         PyMem_Free(prefix)
 *         return i
*/
  PyMem_Free(__pyx_v_full_address);

  /* "setools/policyrep/netcontext.pxi":140
 * 
 *         PyMem_Free(full_address)
 *         PyMem_Free(prefix)             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  PyMem_Free(__pyx_v_prefix);

  /* "setools/policyrep/netcontext.pxi":141
 *         PyMem_Free(full_address)
 *         PyMem_Free(prefix)
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = __pyx_v_i;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":104
 *         readonly object pkeys
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Ibpkeycon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Ibpkeycon objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":143
 *         return i
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"ibpkeycon|{self.subnet_prefix}|{self.pkeys.low}|{self.pkeys.high}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_9Ibpkeycon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_9Ibpkeycon_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon___hash__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_9Ibpkeycon___hash__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[6];
  Py_hash_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/netcontext.pxi":144
 * 
 *     def __hash__(self):
 *         return hash(f"ibpkeycon|{self.subnet_prefix}|{self.pkeys.low}|{self.pkeys.high}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->subnet_prefix, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->pkeys, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->pkeys, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_ibpkeycon;
  __pyx_t_5[1] = __pyx_t_1;
  __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_5[3] = __pyx_t_3;
  __pyx_t_5[4] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_5[5] = __pyx_t_4;
  __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_5, 6, 10 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
  if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = PyObject_Hash(__pyx_t_2); if (unlikely(__pyx_t_6 == ((Py_hash_t)-1))) __PYX_ERR(15, 144, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":143
 *         return i
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"ibpkeycon|{self.subnet_prefix}|{self.pkeys.low}|{self.pkeys.high}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":146
 *         return hash(f"ibpkeycon|{self.subnet_prefix}|{self.pkeys.low}|{self.pkeys.high}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_2__lt__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/netcontext.pxi":148
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":146
 *         return hash(f"ibpkeycon|{self.subnet_prefix}|{self.pkeys.low}|{self.pkeys.high}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":150
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"ibpkeycon {self.subnet_prefix} {self.pkeys} {self.context}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9Ibpkeycon_5statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ibpkeycon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_4statement(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_4statement(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[6];
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/netcontext.pxi":151
 * 
 *     def statement(self):
 *         return f"ibpkeycon {self.subnet_prefix} {self.pkeys} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->subnet_prefix, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->pkeys, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_ibpkeycon_2;
  __pyx_t_4[1] = __pyx_t_1;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[3] = __pyx_t_2;
  __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[5] = __pyx_t_3;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 6, 10 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":150
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"ibpkeycon {self.subnet_prefix} {self.pkeys} {self.context}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":101
 * 
 *     cdef:
 *         readonly object subnet_prefix             # <<<<<<<<<<<<<<
 *         readonly object pkeys
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_13subnet_prefix_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_13subnet_prefix_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_13subnet_prefix___get__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_13subnet_prefix___get__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->subnet_prefix);
  __pyx_r = __pyx_v_self->subnet_prefix;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":102
 *     cdef:
 *         readonly object subnet_prefix
 *         readonly object pkeys             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_5pkeys_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_5pkeys_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_5pkeys___get__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_5pkeys___get__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->pkeys);
  __pyx_r = __pyx_v_self->pkeys;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9Ibpkeycon_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ibpkeycon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.pkeys, self.policy, self.subnet_prefix)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->pkeys);
  __Pyx_GIVEREF(__pyx_v_self->pkeys);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->pkeys) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->subnet_prefix);
  __Pyx_GIVEREF(__pyx_v_self->subnet_prefix);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->subnet_prefix) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.pkeys, self.policy, self.subnet_prefix)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.pkeys, self.policy, self.subnet_prefix)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.pkeys is not None or self.policy is not None or self.subnet_prefix is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.pkeys, self.policy, self.subnet_prefix)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.pkeys is not None or self.policy is not None or self.subnet_prefix is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0xd4355e5, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->pkeys != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->subnet_prefix != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.pkeys is not None or self.policy is not None or self.subnet_prefix is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0xd4355e5, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.pkeys is not None or self.policy is not None or self.subnet_prefix is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0xd4355e5, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0xd4355e5, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ibpkeycon); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_222516709);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_222516709);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_222516709) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.pkeys is not None or self.policy is not None or self.subnet_prefix is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0xd4355e5, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0xd4355e5, None), state
 *     else:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0xd4355e5, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ibpkeycon__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ibpkeycon); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_222516709);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_222516709);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_222516709) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0xd4355e5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ibpkeycon__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9Ibpkeycon_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ibpkeycon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0xd4355e5, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ibpkeycon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ibpkeycon__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0xd4355e5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ibpkeycon__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":162
 *         readonly Context packet
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Netifcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Netifcon objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_f_7setools_9policyrep_8Netifcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_n = 0;
  struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":165
 *     cdef inline Netifcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Netifcon objects."""
 *         cdef Netifcon n = Netifcon.__new__(Netifcon)             # <<<<<<<<<<<<<<
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Netifcon(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Netifcon), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 165, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_n = ((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":166
 *         """Factory function for creating Netifcon objects."""
 *         cdef Netifcon n = Netifcon.__new__(Netifcon)
 *         n.policy = policy             # <<<<<<<<<<<<<<
 *         n.key = <uintptr_t>symbol
 *         n.netif = intern(symbol.u.name)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_n->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_n->__pyx_base.__pyx_base.policy);
  __pyx_v_n->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":167
 *         cdef Netifcon n = Netifcon.__new__(Netifcon)
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         n.netif = intern(symbol.u.name)
 *         n.context = Context.factory(policy, symbol.context)
*/
  __pyx_v_n->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/netcontext.pxi":168
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol
 *         n.netif = intern(symbol.u.name)             # <<<<<<<<<<<<<<
 *         n.context = Context.factory(policy, symbol.context)
 *         n.packet = Context.factory(policy, &symbol.context[1])
*/
  __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_symbol->u.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(15, 168, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_n->netif);
  __Pyx_DECREF(__pyx_v_n->netif);
  __pyx_v_n->netif = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":169
 *         n.key = <uintptr_t>symbol
 *         n.netif = intern(symbol.u.name)
 *         n.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         n.packet = Context.factory(policy, &symbol.context[1])
 *         return n
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_n->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_n->__pyx_base.context);
  __pyx_v_n->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":170
 *         n.netif = intern(symbol.u.name)
 *         n.context = Context.factory(policy, symbol.context)
 *         n.packet = Context.factory(policy, &symbol.context[1])             # <<<<<<<<<<<<<<
 *         return n
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, (&(__pyx_v_symbol->context[1])))); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_n->packet);
  __Pyx_DECREF((PyObject *)__pyx_v_n->packet);
  __pyx_v_n->packet = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":171
 *         n.context = Context.factory(policy, symbol.context)
 *         n.packet = Context.factory(policy, &symbol.context[1])
 *         return n             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_n);
  __pyx_r = __pyx_v_n;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":162
 *         readonly Context packet
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Netifcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Netifcon objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_n);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":173
 *         return n
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"netifcon|{self.netif}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_8Netifcon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_8Netifcon_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon___hash__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_8Netifcon___hash__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_hash_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/netcontext.pxi":174
 * 
 *     def __hash__(self):
 *         return hash(f"netifcon|{self.netif}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->netif); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_netifcon, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = PyObject_Hash(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_hash_t)-1))) __PYX_ERR(15, 174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":173
 *         return n
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"netifcon|{self.netif}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":176
 *         return hash(f"netifcon|{self.netif}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/netcontext.pxi":178
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":176
 *         return hash(f"netifcon|{self.netif}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":180
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"netifcon {self.netif} {self.context} {self.packet}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Netifcon_5statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Netifcon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_4statement(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_4statement(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[6];
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/netcontext.pxi":181
 * 
 *     def statement(self):
 *         return f"netifcon {self.netif} {self.context} {self.packet}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->netif); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->packet), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_netifcon_2;
  __pyx_t_4[1] = __pyx_t_1;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[3] = __pyx_t_2;
  __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[5] = __pyx_t_3;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 6, 9 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":180
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"netifcon {self.netif} {self.context} {self.packet}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":159
 * 
 *     cdef:
 *         readonly str netif             # <<<<<<<<<<<<<<
 *         readonly Context packet
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_5netif_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_5netif_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_5netif___get__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_5netif___get__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->netif);
  __pyx_r = __pyx_v_self->netif;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":160
 *     cdef:
 *         readonly str netif
 *         readonly Context packet             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_6packet_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_6packet_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_6packet___get__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_6packet___get__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->packet);
  __pyx_r = ((PyObject *)__pyx_v_self->packet);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Netifcon_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Netifcon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.netif, self.packet, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->netif);
  __Pyx_GIVEREF(__pyx_v_self->netif);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->netif) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->packet);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->packet);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->packet)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.netif, self.packet, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.netif, self.packet, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.netif is not None or self.packet is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.netif, self.packet, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.netif is not None or self.packet is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Netifcon, (type(self), 0x074b3eb, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->netif != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->packet) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.netif is not None or self.packet is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Netifcon, (type(self), 0x074b3eb, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.netif is not None or self.packet is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Netifcon, (type(self), 0x074b3eb, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Netifcon, (type(self), 0x074b3eb, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Netifcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_7648235);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_7648235);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_7648235) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.netif is not None or self.packet is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Netifcon, (type(self), 0x074b3eb, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Netifcon, (type(self), 0x074b3eb, None), state
 *     else:
 *         return __pyx_unpickle_Netifcon, (type(self), 0x074b3eb, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Netifcon__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Netifcon); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_7648235);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_7648235);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_7648235) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Netifcon, (type(self), 0x074b3eb, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Netifcon__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Netifcon_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Netifcon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Netifcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Netifcon, (type(self), 0x074b3eb, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Netifcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Netifcon__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Netifcon, (type(self), 0x074b3eb, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Netifcon__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":200
 *         readonly object network
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Nodecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol, ip_version):
 *         """Factory function for creating Nodecon objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_f_7setools_9policyrep_7Nodecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol, PyObject *__pyx_v_ip_version) {
  char *__pyx_v_addr;
  char *__pyx_v_mask;
  int __pyx_v_CIDR;
  int __pyx_v_i;
  uint32_t __pyx_v_block;
  struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_n = 0;
  PyObject *__pyx_v_net_with_mask = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_ex = NULL;
  PyObject *__pyx_v_log = NULL;
  struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  uint32_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6[3];
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  size_t __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16[5];
  PyObject *__pyx_t_17 = NULL;
  int __pyx_t_18;
  char const *__pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  PyObject *__pyx_t_24 = NULL;
  PyObject *__pyx_t_25 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":206
 *             char * addr
 *             char * mask
 *             int CIDR = 0             # <<<<<<<<<<<<<<
 *             int i
 *             uint32_t block
*/
  __pyx_v_CIDR = 0;

  /* "setools/policyrep/netcontext.pxi":209
 *             int i
 *             uint32_t block
 *             Nodecon n = Nodecon.__new__(Nodecon)             # <<<<<<<<<<<<<<
 * 
 *         n.policy = policy
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Nodecon(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Nodecon), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 209, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_n = ((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":211
 *             Nodecon n = Nodecon.__new__(Nodecon)
 * 
 *         n.policy = policy             # <<<<<<<<<<<<<<
 *         n.key = <uintptr_t>symbol
 *         n.ip_version = ip_version
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_n->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_n->__pyx_base.__pyx_base.policy);
  __pyx_v_n->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":212
 * 
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         n.ip_version = ip_version
 *         n.context = Context.factory(policy, symbol.context)
*/
  __pyx_v_n->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/netcontext.pxi":213
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol
 *         n.ip_version = ip_version             # <<<<<<<<<<<<<<
 *         n.context = Context.factory(policy, symbol.context)
 * 
*/
  __Pyx_INCREF(__pyx_v_ip_version);
  __Pyx_GIVEREF(__pyx_v_ip_version);
  __Pyx_GOTREF(__pyx_v_n->ip_version);
  __Pyx_DECREF(__pyx_v_n->ip_version);
  __pyx_v_n->ip_version = __pyx_v_ip_version;

  /* "setools/policyrep/netcontext.pxi":214
 *         n.key = <uintptr_t>symbol
 *         n.ip_version = ip_version
 *         n.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 * 
 *         #
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_n->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_n->__pyx_base.context);
  __pyx_v_n->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":219
 *         # Retrieve address and netmask
 *         #
 *         addr = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))             # <<<<<<<<<<<<<<
 *         if addr == NULL:
 *             raise MemoryError
*/
  __pyx_v_addr = ((char *)PyMem_Malloc((INET6_ADDRSTRLEN * (sizeof(char)))));

  /* "setools/policyrep/netcontext.pxi":220
 *         #
 *         addr = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if addr == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  __pyx_t_2 = (__pyx_v_addr == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/netcontext.pxi":221
 *         addr = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if addr == NULL:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         mask = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
*/
    PyErr_NoMemory(); __PYX_ERR(15, 221, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":220
 *         #
 *         addr = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if addr == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  }

  /* "setools/policyrep/netcontext.pxi":223
 *             raise MemoryError
 * 
 *         mask = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))             # <<<<<<<<<<<<<<
 *         if mask == NULL:
 *             PyMem_Free(addr)
*/
  __pyx_v_mask = ((char *)PyMem_Malloc((INET6_ADDRSTRLEN * (sizeof(char)))));

  /* "setools/policyrep/netcontext.pxi":224
 * 
 *         mask = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if mask == NULL:             # <<<<<<<<<<<<<<
 *             PyMem_Free(addr)
 *             raise MemoryError
*/
  __pyx_t_2 = (__pyx_v_mask == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/netcontext.pxi":225
 *         mask = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if mask == NULL:
 *             PyMem_Free(addr)             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
    PyMem_Free(__pyx_v_addr);

    /* "setools/policyrep/netcontext.pxi":226
 *         if mask == NULL:
 *             PyMem_Free(addr)
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         #
*/
    PyErr_NoMemory(); __PYX_ERR(15, 226, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":224
 * 
 *         mask = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if mask == NULL:             # <<<<<<<<<<<<<<
 *             PyMem_Free(addr)
 *             raise MemoryError
*/
  }

  /* "setools/policyrep/netcontext.pxi":237
 *         # If the netmask happens to be invalid, this will
 *         # not detect it.
 *         if ip_version == NodeconIPVersion.ipv4:             # <<<<<<<<<<<<<<
 *             # convert network order to string
 *             inet_ntop(AF_INET, &symbol.u.node.addr, addr, INET6_ADDRSTRLEN)
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NodeconIPVersion); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ipv4); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_ip_version, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 237, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(15, 237, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "setools/policyrep/netcontext.pxi":239
 *         if ip_version == NodeconIPVersion.ipv4:
 *             # convert network order to string
 *             inet_ntop(AF_INET, &symbol.u.node.addr, addr, INET6_ADDRSTRLEN)             # <<<<<<<<<<<<<<
 *             inet_ntop(AF_INET, &symbol.u.node.mask, mask, INET6_ADDRSTRLEN)
 * 
*/
    (void)(inet_ntop(AF_INET, (&__pyx_v_symbol->u.node.addr), __pyx_v_addr, INET6_ADDRSTRLEN));

    /* "setools/policyrep/netcontext.pxi":240
 *             # convert network order to string
 *             inet_ntop(AF_INET, &symbol.u.node.addr, addr, INET6_ADDRSTRLEN)
 *             inet_ntop(AF_INET, &symbol.u.node.mask, mask, INET6_ADDRSTRLEN)             # <<<<<<<<<<<<<<
 * 
 *             # count bits
*/
    (void)(inet_ntop(AF_INET, (&__pyx_v_symbol->u.node.mask), __pyx_v_mask, INET6_ADDRSTRLEN));

    /* "setools/policyrep/netcontext.pxi":243
 * 
 *             # count bits
 *             block = symbol.u.node.mask             # <<<<<<<<<<<<<<
 *             while block:
 *                 block &= block - 1
*/
    __pyx_t_4 = __pyx_v_symbol->u.node.mask;
    __pyx_v_block = __pyx_t_4;

    /* "setools/policyrep/netcontext.pxi":244
 *             # count bits
 *             block = symbol.u.node.mask
 *             while block:             # <<<<<<<<<<<<<<
 *                 block &= block - 1
 *                 CIDR += 1
*/
    while (1) {
      __pyx_t_2 = (__pyx_v_block != 0);
      if (!__pyx_t_2) break;

      /* "setools/policyrep/netcontext.pxi":245
 *             block = symbol.u.node.mask
 *             while block:
 *                 block &= block - 1             # <<<<<<<<<<<<<<
 *                 CIDR += 1
 * 
*/
      __pyx_v_block = (__pyx_v_block & (__pyx_v_block - 1));

      /* "setools/policyrep/netcontext.pxi":246
 *             while block:
 *                 block &= block - 1
 *                 CIDR += 1             # <<<<<<<<<<<<<<
 * 
 *         else:  # NodeconIPVersion.ipv6
*/
      __pyx_v_CIDR = (__pyx_v_CIDR + 1);
    }

    /* "setools/policyrep/netcontext.pxi":237
 *         # If the netmask happens to be invalid, this will
 *         # not detect it.
 *         if ip_version == NodeconIPVersion.ipv4:             # <<<<<<<<<<<<<<
 *             # convert network order to string
 *             inet_ntop(AF_INET, &symbol.u.node.addr, addr, INET6_ADDRSTRLEN)
*/
    goto __pyx_L5;
  }

  /* "setools/policyrep/netcontext.pxi":250
 *         else:  # NodeconIPVersion.ipv6
 *             # convert network order to string
 *             inet_ntop(AF_INET6, &symbol.u.node6.addr, addr, INET6_ADDRSTRLEN)             # <<<<<<<<<<<<<<
 *             inet_ntop(AF_INET6, &symbol.u.node6.mask, mask, INET6_ADDRSTRLEN)
 * 
*/
  /*else*/ {
    (void)(inet_ntop(AF_INET6, (&__pyx_v_symbol->u.node6.addr), __pyx_v_addr, INET6_ADDRSTRLEN));

    /* "setools/policyrep/netcontext.pxi":251
 *             # convert network order to string
 *             inet_ntop(AF_INET6, &symbol.u.node6.addr, addr, INET6_ADDRSTRLEN)
 *             inet_ntop(AF_INET6, &symbol.u.node6.mask, mask, INET6_ADDRSTRLEN)             # <<<<<<<<<<<<<<
 * 
 *             # count bits
*/
    (void)(inet_ntop(AF_INET6, (&__pyx_v_symbol->u.node6.mask), __pyx_v_mask, INET6_ADDRSTRLEN));

    /* "setools/policyrep/netcontext.pxi":254
 * 
 *             # count bits
 *             for i in range(4):             # <<<<<<<<<<<<<<
 *                 block = symbol.u.node6.mask[i]
 *                 while block:
*/
    for (__pyx_t_5 = 0; __pyx_t_5 < 4; __pyx_t_5+=1) {
      __pyx_v_i = __pyx_t_5;

      /* "setools/policyrep/netcontext.pxi":255
 *             # count bits
 *             for i in range(4):
 *                 block = symbol.u.node6.mask[i]             # <<<<<<<<<<<<<<
 *                 while block:
 *                     block &= block - 1
*/
      __pyx_v_block = (__pyx_v_symbol->u.node6.mask[__pyx_v_i]);

      /* "setools/policyrep/netcontext.pxi":256
 *             for i in range(4):
 *                 block = symbol.u.node6.mask[i]
 *                 while block:             # <<<<<<<<<<<<<<
 *                     block &= block - 1
 *                     CIDR += 1
*/
      while (1) {
        __pyx_t_2 = (__pyx_v_block != 0);
        if (!__pyx_t_2) break;

        /* "setools/policyrep/netcontext.pxi":257
 *                 block = symbol.u.node6.mask[i]
 *                 while block:
 *                     block &= block - 1             # <<<<<<<<<<<<<<
 *                     CIDR += 1
 * 
*/
        __pyx_v_block = (__pyx_v_block & (__pyx_v_block - 1));

        /* "setools/policyrep/netcontext.pxi":258
 *                 while block:
 *                     block &= block - 1
 *                     CIDR += 1             # <<<<<<<<<<<<<<
 * 
 *         net_with_mask = f"{addr}/{CIDR}"
*/
        __pyx_v_CIDR = (__pyx_v_CIDR + 1);
      }
    }
  }
  __pyx_L5:;

  /* "setools/policyrep/netcontext.pxi":260
 *                     CIDR += 1
 * 
 *         net_with_mask = f"{addr}/{CIDR}"             # <<<<<<<<<<<<<<
 *         try:
 *             # checkpolicy does not verify that no host bits are set,
*/
  __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_addr); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyUnicode_From_int(__pyx_v_CIDR, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6[0] = __pyx_t_1;
  __pyx_t_6[1] = __pyx_mstate_global->__pyx_kp_u__25;
  __pyx_t_6[2] = __pyx_t_3;
  __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_6, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
  if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_net_with_mask = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":261
 * 
 *         net_with_mask = f"{addr}/{CIDR}"
 *         try:             # <<<<<<<<<<<<<<
 *             # checkpolicy does not verify that no host bits are set,
 *             # so strict will raise an exception if host bits are set.
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_10);
    /*try:*/ {

      /* "setools/policyrep/netcontext.pxi":264
 *             # checkpolicy does not verify that no host bits are set,
 *             # so strict will raise an exception if host bits are set.
 *             n.network = ipaddress.ip_network(net_with_mask)             # <<<<<<<<<<<<<<
 *         except ValueError as ex:
 *             log = logging.getLogger(__name__)
*/
      __pyx_t_3 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ipaddress); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 264, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ip_network); if (unlikely(!__pyx_t_11)) __PYX_ERR(15, 264, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_12 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11);
        assert(__pyx_t_3);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
        __pyx_t_12 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_net_with_mask};
        __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 264, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_GIVEREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_v_n->network);
      __Pyx_DECREF(__pyx_v_n->network);
      __pyx_v_n->network = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "setools/policyrep/netcontext.pxi":261
 * 
 *         net_with_mask = f"{addr}/{CIDR}"
 *         try:             # <<<<<<<<<<<<<<
 *             # checkpolicy does not verify that no host bits are set,
 *             # so strict will raise an exception if host bits are set.
*/
    }
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    goto __pyx_L17_try_end;
    __pyx_L12_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "setools/policyrep/netcontext.pxi":265
 *             # so strict will raise an exception if host bits are set.
 *             n.network = ipaddress.ip_network(net_with_mask)
 *         except ValueError as ex:             # <<<<<<<<<<<<<<
 *             log = logging.getLogger(__name__)
 *             log.warning(f"Nodecon with network {addr} {mask} has host bits set. Analyses may have "
*/
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
    if (__pyx_t_5) {
      __Pyx_AddTraceback("setools.policyrep.Nodecon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_11, &__pyx_t_3) < 0) __PYX_ERR(15, 265, __pyx_L14_except_error)
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_11);
      __pyx_v_ex = __pyx_t_11;
      /*try:*/ {

        /* "setools/policyrep/netcontext.pxi":266
 *             n.network = ipaddress.ip_network(net_with_mask)
 *         except ValueError as ex:
 *             log = logging.getLogger(__name__)             # <<<<<<<<<<<<<<
 *             log.warning(f"Nodecon with network {addr} {mask} has host bits set. Analyses may have "
 *                         "unexpected results.")
*/
        __pyx_t_13 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_logging); if (unlikely(!__pyx_t_14)) __PYX_ERR(15, 266, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_getLogger); if (unlikely(!__pyx_t_15)) __PYX_ERR(15, 266, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(15, 266, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_12 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_15))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_15);
          assert(__pyx_t_13);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15);
          __Pyx_INCREF(__pyx_t_13);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_15, __pyx__function);
          __pyx_t_12 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_14};
          __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_15, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 266, __pyx_L23_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __pyx_v_log = __pyx_t_1;
        __pyx_t_1 = 0;

        /* "setools/policyrep/netcontext.pxi":267
 *         except ValueError as ex:
 *             log = logging.getLogger(__name__)
 *             log.warning(f"Nodecon with network {addr} {mask} has host bits set. Analyses may have "             # <<<<<<<<<<<<<<
 *                         "unexpected results.")
 *             n.network = ipaddress.ip_network(net_with_mask, strict=False)
*/
        __pyx_t_15 = __pyx_v_log;
        __Pyx_INCREF(__pyx_t_15);
        __pyx_t_14 = __Pyx_PyUnicode_FromString(__pyx_v_addr); if (unlikely(!__pyx_t_14)) __PYX_ERR(15, 267, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_13 = __Pyx_PyUnicode_FromString(__pyx_v_mask); if (unlikely(!__pyx_t_13)) __PYX_ERR(15, 267, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_16[0] = __pyx_mstate_global->__pyx_kp_u_Nodecon_with_network;
        __pyx_t_16[1] = __pyx_t_14;
        __pyx_t_16[2] = __pyx_mstate_global->__pyx_kp_u_;
        __pyx_t_16[3] = __pyx_t_13;
        __pyx_t_16[4] = __pyx_mstate_global->__pyx_kp_u_has_host_bits_set_Analyses_may;
        __pyx_t_17 = __Pyx_PyUnicode_Join(__pyx_t_16, 5, 21 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 57, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13));
        if (unlikely(!__pyx_t_17)) __PYX_ERR(15, 267, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_17);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_12 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_t_17};
          __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_warning, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 267, __pyx_L23_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "setools/policyrep/netcontext.pxi":269
 *             log.warning(f"Nodecon with network {addr} {mask} has host bits set. Analyses may have "
 *                         "unexpected results.")
 *             n.network = ipaddress.ip_network(net_with_mask, strict=False)             # <<<<<<<<<<<<<<
 * 
 *         PyMem_Free(addr)
*/
        __pyx_t_17 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_ipaddress); if (unlikely(!__pyx_t_15)) __PYX_ERR(15, 269, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_ip_network); if (unlikely(!__pyx_t_13)) __PYX_ERR(15, 269, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_12 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_13))) {
          __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_13);
          assert(__pyx_t_17);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_17);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
          __pyx_t_12 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_17, __pyx_v_net_with_mask};
          __pyx_t_15 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(15, 269, __pyx_L23_error)
          __Pyx_GOTREF(__pyx_t_15);
          if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_strict, Py_False, __pyx_t_15, __pyx_callargs+2, 0) < (0)) __PYX_ERR(15, 269, __pyx_L23_error)
          __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_15);
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 269, __pyx_L23_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_GIVEREF(__pyx_t_1);
        __Pyx_GOTREF(__pyx_v_n->network);
        __Pyx_DECREF(__pyx_v_n->network);
        __pyx_v_n->network = __pyx_t_1;
        __pyx_t_1 = 0;
      }

      /* "setools/policyrep/netcontext.pxi":265
 *             # so strict will raise an exception if host bits are set.
 *             n.network = ipaddress.ip_network(net_with_mask)
 *         except ValueError as ex:             # <<<<<<<<<<<<<<
 *             log = logging.getLogger(__name__)
 *             log.warning(f"Nodecon with network {addr} {mask} has host bits set. Analyses may have "
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
          goto __pyx_L24;
        }
        __pyx_L23_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25);
          if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_23);
          __Pyx_XGOTREF(__pyx_t_24);
          __Pyx_XGOTREF(__pyx_t_25);
          __pyx_t_5 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_23);
          __Pyx_XGIVEREF(__pyx_t_24);
          __Pyx_XGIVEREF(__pyx_t_25);
          __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_24, __pyx_t_25);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_22);
          __Pyx_ErrRestore(__pyx_t_20, __pyx_t_21, __pyx_t_22);
          __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0;
          __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19;
          goto __pyx_L14_except_error;
        }
        __pyx_L24:;
      }
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L13_exception_handled;
    }
    goto __pyx_L14_except_error;

    /* "setools/policyrep/netcontext.pxi":261
 * 
 *         net_with_mask = f"{addr}/{CIDR}"
 *         try:             # <<<<<<<<<<<<<<
 *             # checkpolicy does not verify that no host bits are set,
 *             # so strict will raise an exception if host bits are set.
*/
    __pyx_L14_except_error:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    goto __pyx_L1_error;
    __pyx_L13_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    __pyx_L17_try_end:;
  }

  /* "setools/policyrep/netcontext.pxi":271
 *             n.network = ipaddress.ip_network(net_with_mask, strict=False)
 * 
 *         PyMem_Free(addr)             # <<<<<<<<<<<<<<
 *         PyMem_Free(mask)
 * 
*/
  PyMem_Free(__pyx_v_addr);

  /* "setools/policyrep/netcontext.pxi":272
 * 
 *         PyMem_Free(addr)
 *         PyMem_Free(mask)             # <<<<<<<<<<<<<<
 * 
 *         return n
*/
  PyMem_Free(__pyx_v_mask);

  /* "setools/policyrep/netcontext.pxi":274
 *         PyMem_Free(mask)
 * 
 *         return n             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_n);
  __pyx_r = __pyx_v_n;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":200
 *         readonly object network
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Nodecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol, ip_version):
 *         """Factory function for creating Nodecon objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_n);
  __Pyx_XDECREF(__pyx_v_net_with_mask);
  __Pyx_XDECREF(__pyx_v_ex);
  __Pyx_XDECREF(__pyx_v_log);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":276
 *         return n
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"nodecon|{self.network.with_netmask}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_7Nodecon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_7Nodecon_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon___hash__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_7Nodecon___hash__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_hash_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/netcontext.pxi":277
 * 
 *     def __hash__(self):
 *         return hash(f"nodecon|{self.network.with_netmask}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->network, __pyx_mstate_global->__pyx_n_u_with_netmask); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_nodecon, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_3 == ((Py_hash_t)-1))) __PYX_ERR(15, 277, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":276
 *         return n
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"nodecon|{self.network.with_netmask}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":279
 *         return hash(f"nodecon|{self.network.with_netmask}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_2__lt__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/netcontext.pxi":281
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 281, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":279
 *         return hash(f"nodecon|{self.network.with_netmask}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":283
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"nodecon {self.network.with_netmask.replace('/', ' ')} {self.context}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Nodecon_5statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Nodecon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_4statement(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_4statement(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[4];
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/netcontext.pxi":284
 * 
 *     def statement(self):
 *         return f"nodecon {self.network.with_netmask.replace('/', ' ')} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->network, __pyx_mstate_global->__pyx_n_u_with_netmask); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_nodecon_2;
  __pyx_t_3[1] = __pyx_t_2;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_3[3] = __pyx_t_1;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":283
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"nodecon {self.network.with_netmask.replace('/', ' ')} {self.context}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":197
 * 
 *     cdef:
 *         readonly object ip_version             # <<<<<<<<<<<<<<
 *         readonly object network
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_10ip_version_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_10ip_version_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_10ip_version___get__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_10ip_version___get__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ip_version);
  __pyx_r = __pyx_v_self->ip_version;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":198
 *     cdef:
 *         readonly object ip_version
 *         readonly object network             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_7network_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_7network_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_7network___get__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_7network___get__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->network);
  __pyx_r = __pyx_v_self->network;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Nodecon_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Nodecon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.ip_version, self.key, self.network, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->ip_version);
  __Pyx_GIVEREF(__pyx_v_self->ip_version);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->ip_version) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->network);
  __Pyx_GIVEREF(__pyx_v_self->network);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->network) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.ip_version, self.key, self.network, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.ip_version, self.key, self.network, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.ip_version is not None or self.network is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.ip_version, self.key, self.network, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.ip_version is not None or self.network is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nodecon, (type(self), 0x5b0ce91, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->ip_version != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->network != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.ip_version is not None or self.network is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nodecon, (type(self), 0x5b0ce91, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.ip_version is not None or self.network is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Nodecon, (type(self), 0x5b0ce91, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nodecon, (type(self), 0x5b0ce91, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Nodecon); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_95473297);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_95473297);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_95473297) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.ip_version is not None or self.network is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nodecon, (type(self), 0x5b0ce91, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nodecon, (type(self), 0x5b0ce91, None), state
 *     else:
 *         return __pyx_unpickle_Nodecon, (type(self), 0x5b0ce91, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nodecon__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Nodecon); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_95473297);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_95473297);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_95473297) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nodecon, (type(self), 0x5b0ce91, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nodecon__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Nodecon_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Nodecon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Nodecon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nodecon, (type(self), 0x5b0ce91, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nodecon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Nodecon__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nodecon, (type(self), 0x5b0ce91, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nodecon__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":305
 *         readonly object protocol
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Portcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Portcon objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_f_7setools_9policyrep_7Portcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_p = 0;
  struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":308
 *     cdef inline Portcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Portcon objects."""
 *         cdef Portcon p = Portcon.__new__(Portcon)             # <<<<<<<<<<<<<<
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Portcon(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Portcon), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 308, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_p = ((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":309
 *         """Factory function for creating Portcon objects."""
 *         cdef Portcon p = Portcon.__new__(Portcon)
 *         p.policy = policy             # <<<<<<<<<<<<<<
 *         p.key = <uintptr_t>symbol
 *         p.ports = PortconRange(symbol.u.port.low_port, symbol.u.port.high_port)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_p->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_p->__pyx_base.__pyx_base.policy);
  __pyx_v_p->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":310
 *         cdef Portcon p = Portcon.__new__(Portcon)
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         p.ports = PortconRange(symbol.u.port.low_port, symbol.u.port.high_port)
 *         p.protocol = PortconProtocol(symbol.u.port.protocol)
*/
  __pyx_v_p->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/netcontext.pxi":311
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
 *         p.ports = PortconRange(symbol.u.port.low_port, symbol.u.port.high_port)             # <<<<<<<<<<<<<<
 *         p.protocol = PortconProtocol(symbol.u.port.protocol)
 *         p.context = Context.factory(policy, symbol.context)
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PortconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyLong_From_uint16_t(__pyx_v_symbol->u.port.low_port); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyLong_From_uint16_t(__pyx_v_symbol->u.port.high_port); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_p->ports);
  __Pyx_DECREF(__pyx_v_p->ports);
  __pyx_v_p->ports = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":312
 *         p.key = <uintptr_t>symbol
 *         p.ports = PortconRange(symbol.u.port.low_port, symbol.u.port.high_port)
 *         p.protocol = PortconProtocol(symbol.u.port.protocol)             # <<<<<<<<<<<<<<
 *         p.context = Context.factory(policy, symbol.context)
 *         return p
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PortconProtocol); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyLong_From_uint8_t(__pyx_v_symbol->u.port.protocol); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 312, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_p->protocol);
  __Pyx_DECREF(__pyx_v_p->protocol);
  __pyx_v_p->protocol = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":313
 *         p.ports = PortconRange(symbol.u.port.low_port, symbol.u.port.high_port)
 *         p.protocol = PortconProtocol(symbol.u.port.protocol)
 *         p.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return p
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_p->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_p->__pyx_base.context);
  __pyx_v_p->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":314
 *         p.protocol = PortconProtocol(symbol.u.port.protocol)
 *         p.context = Context.factory(policy, symbol.context)
 *         return p             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_p);
  __pyx_r = __pyx_v_p;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":305
 *         readonly object protocol
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Portcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Portcon objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Portcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_p);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":316
 *         return p
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *             return hash(f"portcon|{self.protocol}|{self.ports.low}|{self.ports.high}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_7Portcon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_7Portcon_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon___hash__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_7Portcon___hash__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[6];
  Py_hash_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/netcontext.pxi":317
 * 
 *     def __hash__(self):
 *             return hash(f"portcon|{self.protocol}|{self.ports.low}|{self.ports.high}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->protocol, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->ports, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->ports, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_portcon;
  __pyx_t_5[1] = __pyx_t_1;
  __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_5[3] = __pyx_t_3;
  __pyx_t_5[4] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_5[5] = __pyx_t_4;
  __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_5, 6, 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
  if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = PyObject_Hash(__pyx_t_2); if (unlikely(__pyx_t_6 == ((Py_hash_t)-1))) __PYX_ERR(15, 317, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":316
 *         return p
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *             return hash(f"portcon|{self.protocol}|{self.ports.low}|{self.ports.high}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Portcon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":319
 *             return hash(f"portcon|{self.protocol}|{self.ports.low}|{self.ports.high}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/netcontext.pxi":321
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 321, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":319
 *             return hash(f"portcon|{self.protocol}|{self.ports.low}|{self.ports.high}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Portcon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":323
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"portcon {self.protocol} {self.ports} {self.context}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Portcon_5statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Portcon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_4statement(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_4statement(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[6];
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/netcontext.pxi":324
 * 
 *     def statement(self):
 *         return f"portcon {self.protocol} {self.ports} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->protocol, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->ports, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_portcon_2;
  __pyx_t_4[1] = __pyx_t_1;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[3] = __pyx_t_2;
  __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[5] = __pyx_t_3;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 6, 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":323
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"portcon {self.protocol} {self.ports} {self.context}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Portcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":302
 * 
 *     cdef:
 *         readonly object ports             # <<<<<<<<<<<<<<
 *         readonly object protocol
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_5ports_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_5ports_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_5ports___get__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_5ports___get__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ports);
  __pyx_r = __pyx_v_self->ports;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":303
 *     cdef:
 *         readonly object ports
 *         readonly object protocol             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_8protocol_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_8protocol_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_8protocol___get__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_8protocol___get__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->protocol);
  __pyx_r = __pyx_v_self->protocol;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Portcon_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Portcon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy, self.ports, self.protocol)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->ports);
  __Pyx_GIVEREF(__pyx_v_self->ports);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->ports) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->protocol);
  __Pyx_GIVEREF(__pyx_v_self->protocol);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->protocol) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy, self.ports, self.protocol)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy, self.ports, self.protocol)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None or self.protocol is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy, self.ports, self.protocol)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None or self.protocol is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Portcon, (type(self), 0xf1a1872, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->ports != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->protocol != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None or self.protocol is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Portcon, (type(self), 0xf1a1872, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None or self.protocol is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Portcon, (type(self), 0xf1a1872, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Portcon, (type(self), 0xf1a1872, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Portcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_253368434);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_253368434);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_253368434) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None or self.protocol is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Portcon, (type(self), 0xf1a1872, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Portcon, (type(self), 0xf1a1872, None), state
 *     else:
 *         return __pyx_unpickle_Portcon, (type(self), 0xf1a1872, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Portcon__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Portcon); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_253368434);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_253368434);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_253368434) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Portcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Portcon, (type(self), 0xf1a1872, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Portcon__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Portcon_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Portcon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Portcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Portcon, (type(self), 0xf1a1872, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Portcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Portcon__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Portcon, (type(self), 0xf1a1872, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Portcon__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Portcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":334
 *     """Iterator for ibendportcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ibendportcon iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_20IbendportconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":337
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ibendportcon iterators."""
 *         i = IbendportconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IbendportconIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 337, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_IbendportconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":338
 *         """Factory function for creating Ibendportcon iterators."""
 *         i = IbendportconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":339
 *         i = IbendportconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/netcontext.pxi":340
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":334
 *     """Iterator for ibendportcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ibendportcon iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.IbendportconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":342
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ibendportcon.factory(self.policy, self.ocon)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_20IbendportconIterator___next__(((struct __pyx_obj_7setools_9policyrep_IbendportconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator___next__(struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/netcontext.pxi":343
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Ibendportcon.factory(self.policy, self.ocon)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IbendportconIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":344
 *     def __next__(self):
 *         super().__next__()
 *         return Ibendportcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_12Ibendportcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":342
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ibendportcon.factory(self.policy, self.ocon)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.IbendportconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_20IbendportconIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20IbendportconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_20IbendportconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_IbendportconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.IbendportconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_20IbendportconIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20IbendportconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.IbendportconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_20IbendportconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_IbendportconIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.IbendportconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":351
 *     """Iterator for ibpkeycon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ibpkeycon iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_17IbpkeyconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":354
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ibpkeycon iterators."""
 *         i = IbpkeyconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 354, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":355
 *         """Factory function for creating Ibpkeycon iterators."""
 *         i = IbpkeyconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":356
 *         i = IbpkeyconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/netcontext.pxi":357
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":351
 *     """Iterator for ibpkeycon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ibpkeycon iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":359
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ibpkeycon.factory(self.policy, self.ocon)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_17IbpkeyconIterator___next__(((struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator___next__(struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/netcontext.pxi":360
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Ibpkeycon.factory(self.policy, self.ocon)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":361
 *     def __next__(self):
 *         super().__next__()
 *         return Ibpkeycon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_9Ibpkeycon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":359
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ibpkeycon.factory(self.policy, self.ocon)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_17IbpkeyconIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_17IbpkeyconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_17IbpkeyconIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_17IbpkeyconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":368
 *     """Iterator for netifcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Netifcon iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_16NetifconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":371
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Netifcon iterators."""
 *         i = NetifconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_NetifconIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 371, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_NetifconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":372
 *         """Factory function for creating Netifcon iterators."""
 *         i = NetifconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":373
 *         i = NetifconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/netcontext.pxi":374
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":368
 *     """Iterator for netifcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Netifcon iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.NetifconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":376
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Netifcon.factory(self.policy, self.ocon)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_16NetifconIterator___next__(((struct __pyx_obj_7setools_9policyrep_NetifconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator___next__(struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/netcontext.pxi":377
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Netifcon.factory(self.policy, self.ocon)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_NetifconIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":378
 *     def __next__(self):
 *         super().__next__()
 *         return Netifcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_8Netifcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":376
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Netifcon.factory(self.policy, self.ocon)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.NetifconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_16NetifconIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16NetifconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_16NetifconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_NetifconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.NetifconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_16NetifconIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16NetifconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.NetifconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_16NetifconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_NetifconIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.NetifconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":387
 *     cdef object ip_version
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, ip_version):
 *         """Factory function for creating Nodecon iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_15NodeconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head, PyObject *__pyx_v_ip_version) {
  struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":390
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, ip_version):
 *         """Factory function for creating Nodecon iterators."""
 *         i = NodeconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_NodeconIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 390, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_NodeconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":391
 *         """Factory function for creating Nodecon iterators."""
 *         i = NodeconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         i.ip_version = ip_version
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":392
 *         i = NodeconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         i.ip_version = ip_version
 *         return i
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/netcontext.pxi":393
 *         i.policy = policy
 *         i.head = i.curr = head
 *         i.ip_version = ip_version             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __Pyx_INCREF(__pyx_v_ip_version);
  __Pyx_GIVEREF(__pyx_v_ip_version);
  __Pyx_GOTREF(__pyx_v_i->ip_version);
  __Pyx_DECREF(__pyx_v_i->ip_version);
  __pyx_v_i->ip_version = __pyx_v_ip_version;

  /* "setools/policyrep/netcontext.pxi":394
 *         i.head = i.curr = head
 *         i.ip_version = ip_version
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":387
 *     cdef object ip_version
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, ip_version):
 *         """Factory function for creating Nodecon iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.NodeconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":396
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Nodecon.factory(self.policy, self.ocon, self.ip_version)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_15NodeconIterator___next__(((struct __pyx_obj_7setools_9policyrep_NodeconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator___next__(struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/netcontext.pxi":397
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Nodecon.factory(self.policy, self.ocon, self.ip_version)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_NodeconIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 397, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 397, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":398
 *     def __next__(self):
 *         super().__next__()
 *         return Nodecon.factory(self.policy, self.ocon, self.ip_version)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = __pyx_v_self->ip_version;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Nodecon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon, __pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":396
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Nodecon.factory(self.policy, self.ocon, self.ip_version)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.NodeconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15NodeconIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15NodeconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_15NodeconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_NodeconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.NodeconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15NodeconIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15NodeconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.NodeconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_15NodeconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_NodeconIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.NodeconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":405
 *     """Iterator for portcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Portcon iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_15PortconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":408
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Portcon iterators."""
 *         i = PortconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PortconIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 408, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_PortconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":409
 *         """Factory function for creating Portcon iterators."""
 *         i = PortconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":410
 *         i = PortconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/netcontext.pxi":411
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":405
 *     """Iterator for portcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Portcon iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PortconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":413
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Portcon.factory(self.policy, self.ocon)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_15PortconIterator___next__(((struct __pyx_obj_7setools_9policyrep_PortconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator___next__(struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/netcontext.pxi":414
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Portcon.factory(self.policy, self.ocon)
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PortconIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":415
 *     def __next__(self):
 *         super().__next__()
 *         return Portcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_7Portcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":413
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Portcon.factory(self.policy, self.ocon)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.PortconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15PortconIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15PortconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_15PortconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PortconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PortconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15PortconIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15PortconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PortconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_15PortconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PortconIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PortconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":22
 *         readonly frozenset perms
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Common factory(SELinuxPolicy policy, sepol.common_datum_t *symbol):
 *         """Factory function for creating Common objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Common *__pyx_f_7setools_9policyrep_6Common_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, common_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_c = 0;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_key = 0;
  uint32_t __pyx_v_value;
  struct __pyx_obj_7setools_9policyrep_Common *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  uint32_t __pyx_t_11;
  struct hashtab_node *__pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/objclass.pxi":28
 *             Common c
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             str key
 *             uint32_t value
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/objclass.pxi":33
 *             dict perm_table
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _common_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/objclass.pxi":34
 * 
 *         try:
 *             return _common_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             c = Common.__new__(Common)
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__common_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 34, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(16, 34, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Common))))) __PYX_ERR(16, 34, __pyx_L3_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_t_5);
      __pyx_t_5 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/objclass.pxi":33
 *             dict perm_table
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _common_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/objclass.pxi":35
 *         try:
 *             return _common_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             c = Common.__new__(Common)
 *             c.policy = policy
*/
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_6) {
      __Pyx_AddTraceback("setools.policyrep.Common.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(16, 35, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "setools/policyrep/objclass.pxi":36
 *             return _common_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             c = Common.__new__(Common)             # <<<<<<<<<<<<<<
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
*/
      __pyx_t_8 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Common(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Common), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 36, __pyx_L5_except_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_8);
      __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":37
 *         except KeyError:
 *             c = Common.__new__(Common)
 *             c.policy = policy             # <<<<<<<<<<<<<<
 *             c.key = <uintptr_t>symbol
 *             c.name = policy.common_value_to_name(symbol.s.value - 1)
*/
      __Pyx_INCREF((PyObject *)__pyx_v_policy);
      __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
      __Pyx_GOTREF((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy);
      __pyx_v_c->__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/objclass.pxi":38
 *             c = Common.__new__(Common)
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             c.name = policy.common_value_to_name(symbol.s.value - 1)
 * 
*/
      __pyx_v_c->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/objclass.pxi":39
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 *             c.name = policy.common_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 * 
 *             #
*/
      __pyx_t_8 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_common_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 39, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->__pyx_base.name);
      __Pyx_DECREF(__pyx_v_c->__pyx_base.name);
      __pyx_v_c->__pyx_base.name = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":44
 *             # Create value:name permission table (reverse of what is in the policydb)
 *             #
 *             c._perm_table = {}             # <<<<<<<<<<<<<<
 *             while bucket < symbol.permissions.table[0].size:
 *                 node = symbol.permissions.table[0].htable[bucket]
*/
      __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 44, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->_perm_table);
      __Pyx_DECREF(__pyx_v_c->_perm_table);
      __pyx_v_c->_perm_table = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":45
 *             #
 *             c._perm_table = {}
 *             while bucket < symbol.permissions.table[0].size:             # <<<<<<<<<<<<<<
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:
*/
      while (1) {
        __pyx_t_9 = (__pyx_v_bucket < (__pyx_v_symbol->permissions.table[0]).size);
        if (!__pyx_t_9) break;

        /* "setools/policyrep/objclass.pxi":46
 *             c._perm_table = {}
 *             while bucket < symbol.permissions.table[0].size:
 *                 node = symbol.permissions.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)
*/
        __pyx_v_node = ((__pyx_v_symbol->permissions.table[0]).htable[__pyx_v_bucket]);

        /* "setools/policyrep/objclass.pxi":47
 *             while bucket < symbol.permissions.table[0].size:
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:             # <<<<<<<<<<<<<<
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
*/
        while (1) {
          __pyx_t_9 = (__pyx_v_node != NULL);
          if (!__pyx_t_9) break;

          /* "setools/policyrep/objclass.pxi":48
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)             # <<<<<<<<<<<<<<
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key
*/
          __pyx_t_8 = __Pyx_PyUnicode_FromString(((char *)__pyx_v_node->key)); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 48, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_10 = __Pyx_Intern(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(16, 48, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (!(likely(PyUnicode_CheckExact(__pyx_t_10))||((__pyx_t_10) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_10))) __PYX_ERR(16, 48, __pyx_L5_except_error)
          __Pyx_XDECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_10));
          __pyx_t_10 = 0;

          /* "setools/policyrep/objclass.pxi":49
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value             # <<<<<<<<<<<<<<
 *                     c._perm_table[value] = key
 *                     node = node.next
*/
          __pyx_t_11 = ((perm_datum_t *)__pyx_v_node->datum)->s.value;
          __pyx_v_value = __pyx_t_11;

          /* "setools/policyrep/objclass.pxi":50
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key             # <<<<<<<<<<<<<<
 *                     node = node.next
 * 
*/
          if (unlikely(__pyx_v_c->_perm_table == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(16, 50, __pyx_L5_except_error)
          }
          __pyx_t_10 = __Pyx_PyLong_From_uint32_t(__pyx_v_value); if (unlikely(!__pyx_t_10)) __PYX_ERR(16, 50, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (unlikely((PyDict_SetItem(__pyx_v_c->_perm_table, __pyx_t_10, __pyx_v_key) < 0))) __PYX_ERR(16, 50, __pyx_L5_except_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

          /* "setools/policyrep/objclass.pxi":51
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key
 *                     node = node.next             # <<<<<<<<<<<<<<
 * 
 *                 bucket += 1
*/
          __pyx_t_12 = __pyx_v_node->next;
          __pyx_v_node = __pyx_t_12;
        }

        /* "setools/policyrep/objclass.pxi":53
 *                     node = node.next
 * 
 *                 bucket += 1             # <<<<<<<<<<<<<<
 * 
 *             c.perms = frozenset(c._perm_table.values())
*/
        __pyx_v_bucket = (__pyx_v_bucket + 1);
      }

      /* "setools/policyrep/objclass.pxi":55
 *                 bucket += 1
 * 
 *             c.perms = frozenset(c._perm_table.values())             # <<<<<<<<<<<<<<
 * 
 *             _common_cache[policy][<uintptr_t>symbol] = c
*/
      if (unlikely(__pyx_v_c->_perm_table == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
        __PYX_ERR(16, 55, __pyx_L5_except_error)
      }
      __pyx_t_10 = __Pyx_PyDict_Values(__pyx_v_c->_perm_table); if (unlikely(!__pyx_t_10)) __PYX_ERR(16, 55, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_8 = __Pyx_PyFrozenSet_New(__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 55, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->perms);
      __Pyx_DECREF(__pyx_v_c->perms);
      __pyx_v_c->perms = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":57
 *             c.perms = frozenset(c._perm_table.values())
 * 
 *             _common_cache[policy][<uintptr_t>symbol] = c             # <<<<<<<<<<<<<<
 *             return c
 * 
*/
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__common_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 57, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely((__Pyx_SetItemInt(__pyx_t_8, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_c), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(16, 57, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":58
 * 
 *             _common_cache[policy][<uintptr_t>symbol] = c
 *             return c             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, other):
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __Pyx_INCREF((PyObject *)__pyx_v_c);
      __pyx_r = __pyx_v_c;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/objclass.pxi":33
 *             dict perm_table
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _common_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/objclass.pxi":22
 *         readonly frozenset perms
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Common factory(SELinuxPolicy policy, sepol.common_datum_t *symbol):
 *         """Factory function for creating Common objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.Common.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":60
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return other in self.perms
 * 
*/

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_6Common_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static int __pyx_pw_7setools_9policyrep_6Common_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Common___contains__(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7setools_9policyrep_6Common___contains__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "setools/policyrep/objclass.pxi":61
 * 
 *     def __contains__(self, other):
 *         return other in self.perms             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_other, __pyx_v_self->perms, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(16, 61, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":60
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return other in self.perms
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Common.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":63
 *         return other in self.perms
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         # backslashes not allowed in f-strings
 *         return "common {0}\n{{\n\t{1}\n}}".format(self, '\n\t'.join(sorted(self.perms)))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Common_3statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6Common_3statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Common_3statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6Common_3statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_6Common_2statement(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Common_2statement(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/objclass.pxi":65
 *     def statement(self):
 *         # backslashes not allowed in f-strings
 *         return "common {0}\n{{\n\t{1}\n}}".format(self, '\n\t'.join(sorted(self.perms)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_mstate_global->__pyx_kp_u_common_0_1;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = __pyx_v_self->perms;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely((PyList_Sort(__pyx_t_4) < 0))) __PYX_ERR(16, 65, __pyx_L1_error)
  __pyx_t_3 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__26, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_self), __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_format_2, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":63
 *         return other in self.perms
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         # backslashes not allowed in f-strings
 *         return "common {0}\n{{\n\t{1}\n}}".format(self, '\n\t'.join(sorted(self.perms)))
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Common.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":20
 *     cdef:
 *         dict _perm_table
 *         readonly frozenset perms             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Common_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Common_5perms_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Common_5perms___get__(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Common_5perms___get__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->perms);
  __pyx_r = __pyx_v_self->perms;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Common_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6Common_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Common_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6Common_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_6Common_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Common_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._perm_table, self.key, self.name, self.perms, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_perm_table);
  __Pyx_GIVEREF(__pyx_v_self->_perm_table);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_perm_table) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->__pyx_base.name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->perms);
  __Pyx_GIVEREF(__pyx_v_self->perms);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->perms) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._perm_table, self.key, self.name, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._perm_table, self.key, self.name, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._perm_table is not None or self.name is not None or self.perms is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._perm_table, self.key, self.name, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._perm_table is not None or self.name is not None or self.perms is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Common, (type(self), 0x4a0ce16, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_perm_table != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->perms != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._perm_table is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Common, (type(self), 0x4a0ce16, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._perm_table is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Common, (type(self), 0x4a0ce16, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Common, (type(self), 0x4a0ce16, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Common); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_77647382);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_77647382);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_77647382) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._perm_table is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Common, (type(self), 0x4a0ce16, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Common, (type(self), 0x4a0ce16, None), state
 *     else:
 *         return __pyx_unpickle_Common, (type(self), 0x4a0ce16, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Common__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Common); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_77647382);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_77647382);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_77647382) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Common.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Common, (type(self), 0x4a0ce16, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Common__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Common_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6Common_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Common_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6Common_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Common.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_6Common_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6Common_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Common, (type(self), 0x4a0ce16, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Common__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Common__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Common, (type(self), 0x4a0ce16, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Common__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Common.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":83
 *         uint32_t nprim
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline ObjClass factory(SELinuxPolicy policy, sepol.class_datum_t *symbol):
 *         """Factory function for creating ObjClass objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_f_7setools_9policyrep_8ObjClass_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, class_datum_t *__pyx_v_symbol) {
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_key = 0;
  uint32_t __pyx_v_value;
  struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_c = 0;
  struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  uint32_t __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  struct hashtab_node *__pyx_t_12;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/objclass.pxi":88
 *         cdef:
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             str key
 *             uint32_t value
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/objclass.pxi":95
 *             ObjClass c
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _objclass_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/objclass.pxi":96
 * 
 *         try:
 *             return _objclass_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             #
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__objclass_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 96, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(16, 96, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(16, 96, __pyx_L3_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_5);
      __pyx_t_5 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/objclass.pxi":95
 *             ObjClass c
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _objclass_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/objclass.pxi":97
 *         try:
 *             return _objclass_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             #
 *             # Instantiate object class
*/
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_6) {
      __Pyx_AddTraceback("setools.policyrep.ObjClass.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(16, 97, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "setools/policyrep/objclass.pxi":101
 *             # Instantiate object class
 *             #
 *             c = ObjClass.__new__(ObjClass)             # <<<<<<<<<<<<<<
 *             _objclass_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy
*/
      __pyx_t_8 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_ObjClass(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 101, __pyx_L5_except_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_8);
      __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":102
 *             #
 *             c = ObjClass.__new__(ObjClass)
 *             _objclass_cache[policy][<uintptr_t>symbol] = c             # <<<<<<<<<<<<<<
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
*/
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__objclass_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 102, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely((__Pyx_SetItemInt(__pyx_t_8, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_c), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(16, 102, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":103
 *             c = ObjClass.__new__(ObjClass)
 *             _objclass_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy             # <<<<<<<<<<<<<<
 *             c.key = <uintptr_t>symbol
 *             c.nprim = symbol.permissions.nprim
*/
      __Pyx_INCREF((PyObject *)__pyx_v_policy);
      __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
      __Pyx_GOTREF((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy);
      __pyx_v_c->__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/objclass.pxi":104
 *             _objclass_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             c.nprim = symbol.permissions.nprim
 *             c.name = policy.class_value_to_name(symbol.s.value - 1)
*/
      __pyx_v_c->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/objclass.pxi":105
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 *             c.nprim = symbol.permissions.nprim             # <<<<<<<<<<<<<<
 *             c.name = policy.class_value_to_name(symbol.s.value - 1)
 * 
*/
      __pyx_t_9 = __pyx_v_symbol->permissions.nprim;
      __pyx_v_c->nprim = __pyx_t_9;

      /* "setools/policyrep/objclass.pxi":106
 *             c.key = <uintptr_t>symbol
 *             c.nprim = symbol.permissions.nprim
 *             c.name = policy.class_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 * 
 *             #
*/
      __pyx_t_8 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 106, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->__pyx_base.name);
      __Pyx_DECREF(__pyx_v_c->__pyx_base.name);
      __pyx_v_c->__pyx_base.name = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":111
 *             # Load common
 *             #
 *             if symbol.comdatum:             # <<<<<<<<<<<<<<
 *                 c._common = Common.factory(policy, symbol.comdatum)
 * 
*/
      __pyx_t_10 = (__pyx_v_symbol->comdatum != 0);
      if (__pyx_t_10) {

        /* "setools/policyrep/objclass.pxi":112
 *             #
 *             if symbol.comdatum:
 *                 c._common = Common.factory(policy, symbol.comdatum)             # <<<<<<<<<<<<<<
 * 
 *             c._perm_table = {}
*/
        __pyx_t_8 = ((PyObject *)__pyx_f_7setools_9policyrep_6Common_factory(__pyx_v_policy, __pyx_v_symbol->comdatum)); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 112, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_8);
        __Pyx_GOTREF((PyObject *)__pyx_v_c->_common);
        __Pyx_DECREF((PyObject *)__pyx_v_c->_common);
        __pyx_v_c->_common = ((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_t_8);
        __pyx_t_8 = 0;

        /* "setools/policyrep/objclass.pxi":111
 *             # Load common
 *             #
 *             if symbol.comdatum:             # <<<<<<<<<<<<<<
 *                 c._common = Common.factory(policy, symbol.comdatum)
 * 
*/
      }

      /* "setools/policyrep/objclass.pxi":114
 *                 c._common = Common.factory(policy, symbol.comdatum)
 * 
 *             c._perm_table = {}             # <<<<<<<<<<<<<<
 * 
 *             #
*/
      __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 114, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->_perm_table);
      __Pyx_DECREF(__pyx_v_c->_perm_table);
      __pyx_v_c->_perm_table = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":119
 *             # Create value:name permission table (reverse of what is in the policydb)
 *             #
 *             while bucket < symbol.permissions.table[0].size:             # <<<<<<<<<<<<<<
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:
*/
      while (1) {
        __pyx_t_10 = (__pyx_v_bucket < (__pyx_v_symbol->permissions.table[0]).size);
        if (!__pyx_t_10) break;

        /* "setools/policyrep/objclass.pxi":120
 *             #
 *             while bucket < symbol.permissions.table[0].size:
 *                 node = symbol.permissions.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)
*/
        __pyx_v_node = ((__pyx_v_symbol->permissions.table[0]).htable[__pyx_v_bucket]);

        /* "setools/policyrep/objclass.pxi":121
 *             while bucket < symbol.permissions.table[0].size:
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:             # <<<<<<<<<<<<<<
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
*/
        while (1) {
          __pyx_t_10 = (__pyx_v_node != NULL);
          if (!__pyx_t_10) break;

          /* "setools/policyrep/objclass.pxi":122
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)             # <<<<<<<<<<<<<<
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key
*/
          __pyx_t_8 = __Pyx_PyUnicode_FromString(((char *)__pyx_v_node->key)); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 122, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_11 = __Pyx_Intern(__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(16, 122, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (!(likely(PyUnicode_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_11))) __PYX_ERR(16, 122, __pyx_L5_except_error)
          __Pyx_XDECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_11));
          __pyx_t_11 = 0;

          /* "setools/policyrep/objclass.pxi":123
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value             # <<<<<<<<<<<<<<
 *                     c._perm_table[value] = key
 *                     node = node.next
*/
          __pyx_t_9 = ((perm_datum_t *)__pyx_v_node->datum)->s.value;
          __pyx_v_value = __pyx_t_9;

          /* "setools/policyrep/objclass.pxi":124
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key             # <<<<<<<<<<<<<<
 *                     node = node.next
 * 
*/
          if (unlikely(__pyx_v_c->_perm_table == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(16, 124, __pyx_L5_except_error)
          }
          __pyx_t_11 = __Pyx_PyLong_From_uint32_t(__pyx_v_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(16, 124, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (unlikely((PyDict_SetItem(__pyx_v_c->_perm_table, __pyx_t_11, __pyx_v_key) < 0))) __PYX_ERR(16, 124, __pyx_L5_except_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

          /* "setools/policyrep/objclass.pxi":125
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key
 *                     node = node.next             # <<<<<<<<<<<<<<
 * 
 *                 bucket += 1
*/
          __pyx_t_12 = __pyx_v_node->next;
          __pyx_v_node = __pyx_t_12;
        }

        /* "setools/policyrep/objclass.pxi":127
 *                     node = node.next
 * 
 *                 bucket += 1             # <<<<<<<<<<<<<<
 * 
 *             c.perms = frozenset(c._perm_table.values())
*/
        __pyx_v_bucket = (__pyx_v_bucket + 1);
      }

      /* "setools/policyrep/objclass.pxi":129
 *                 bucket += 1
 * 
 *             c.perms = frozenset(c._perm_table.values())             # <<<<<<<<<<<<<<
 * 
 *             #
*/
      if (unlikely(__pyx_v_c->_perm_table == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
        __PYX_ERR(16, 129, __pyx_L5_except_error)
      }
      __pyx_t_11 = __Pyx_PyDict_Values(__pyx_v_c->_perm_table); if (unlikely(!__pyx_t_11)) __PYX_ERR(16, 129, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_8 = __Pyx_PyFrozenSet_New(__pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 129, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->perms);
      __Pyx_DECREF(__pyx_v_c->perms);
      __pyx_v_c->perms = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":134
 *             # Load defaults
 *             #
 *             c._defaults = []             # <<<<<<<<<<<<<<
 *             if symbol.default_user:
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))
*/
      __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 134, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->_defaults);
      __Pyx_DECREF(__pyx_v_c->_defaults);
      __pyx_v_c->_defaults = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":135
 *             #
 *             c._defaults = []
 *             if symbol.default_user:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))
 * 
*/
      __pyx_t_10 = (__pyx_v_symbol->default_user != 0);
      if (__pyx_t_10) {

        /* "setools/policyrep/objclass.pxi":136
 *             c._defaults = []
 *             if symbol.default_user:
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))             # <<<<<<<<<<<<<<
 * 
 *             if symbol.default_role:
*/
        if (unlikely(__pyx_v_c->_defaults == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(16, 136, __pyx_L5_except_error)
        }
        __pyx_t_8 = __Pyx_PyLong_From_char(__pyx_v_symbol->default_user); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 136, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_11 = ((PyObject *)__pyx_f_7setools_9policyrep_7Default_factory(__pyx_v_policy, __pyx_v_c, __pyx_t_8, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_11)) __PYX_ERR(16, 136, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_c->_defaults, __pyx_t_11); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(16, 136, __pyx_L5_except_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

        /* "setools/policyrep/objclass.pxi":135
 *             #
 *             c._defaults = []
 *             if symbol.default_user:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))
 * 
*/
      }

      /* "setools/policyrep/objclass.pxi":138
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))
 * 
 *             if symbol.default_role:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, symbol.default_role, None, None))
 * 
*/
      __pyx_t_10 = (__pyx_v_symbol->default_role != 0);
      if (__pyx_t_10) {

        /* "setools/policyrep/objclass.pxi":139
 * 
 *             if symbol.default_role:
 *                 c._defaults.append(Default.factory(policy, c, None, symbol.default_role, None, None))             # <<<<<<<<<<<<<<
 * 
 *             if symbol.default_type:
*/
        if (unlikely(__pyx_v_c->_defaults == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(16, 139, __pyx_L5_except_error)
        }
        __pyx_t_11 = __Pyx_PyLong_From_char(__pyx_v_symbol->default_role); if (unlikely(!__pyx_t_11)) __PYX_ERR(16, 139, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_8 = ((PyObject *)__pyx_f_7setools_9policyrep_7Default_factory(__pyx_v_policy, __pyx_v_c, Py_None, __pyx_t_11, Py_None, Py_None)); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 139, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_c->_defaults, __pyx_t_8); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(16, 139, __pyx_L5_except_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "setools/policyrep/objclass.pxi":138
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))
 * 
 *             if symbol.default_role:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, symbol.default_role, None, None))
 * 
*/
      }

      /* "setools/policyrep/objclass.pxi":141
 *                 c._defaults.append(Default.factory(policy, c, None, symbol.default_role, None, None))
 * 
 *             if symbol.default_type:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, None, symbol.default_type, None))
 * 
*/
      __pyx_t_10 = (__pyx_v_symbol->default_type != 0);
      if (__pyx_t_10) {

        /* "setools/policyrep/objclass.pxi":142
 * 
 *             if symbol.default_type:
 *                 c._defaults.append(Default.factory(policy, c, None, None, symbol.default_type, None))             # <<<<<<<<<<<<<<
 * 
 *             if symbol.default_range:
*/
        if (unlikely(__pyx_v_c->_defaults == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(16, 142, __pyx_L5_except_error)
        }
        __pyx_t_8 = __Pyx_PyLong_From_char(__pyx_v_symbol->default_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 142, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_11 = ((PyObject *)__pyx_f_7setools_9policyrep_7Default_factory(__pyx_v_policy, __pyx_v_c, Py_None, Py_None, __pyx_t_8, Py_None)); if (unlikely(!__pyx_t_11)) __PYX_ERR(16, 142, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_c->_defaults, __pyx_t_11); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(16, 142, __pyx_L5_except_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

        /* "setools/policyrep/objclass.pxi":141
 *                 c._defaults.append(Default.factory(policy, c, None, symbol.default_role, None, None))
 * 
 *             if symbol.default_type:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, None, symbol.default_type, None))
 * 
*/
      }

      /* "setools/policyrep/objclass.pxi":144
 *                 c._defaults.append(Default.factory(policy, c, None, None, symbol.default_type, None))
 * 
 *             if symbol.default_range:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, None, None, symbol.default_range))
 * 
*/
      __pyx_t_10 = (__pyx_v_symbol->default_range != 0);
      if (__pyx_t_10) {

        /* "setools/policyrep/objclass.pxi":145
 * 
 *             if symbol.default_range:
 *                 c._defaults.append(Default.factory(policy, c, None, None, None, symbol.default_range))             # <<<<<<<<<<<<<<
 * 
 *             return c
*/
        if (unlikely(__pyx_v_c->_defaults == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(16, 145, __pyx_L5_except_error)
        }
        __pyx_t_11 = __Pyx_PyLong_From_char(__pyx_v_symbol->default_range); if (unlikely(!__pyx_t_11)) __PYX_ERR(16, 145, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_8 = ((PyObject *)__pyx_f_7setools_9policyrep_7Default_factory(__pyx_v_policy, __pyx_v_c, Py_None, Py_None, Py_None, __pyx_t_11)); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 145, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_c->_defaults, __pyx_t_8); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(16, 145, __pyx_L5_except_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "setools/policyrep/objclass.pxi":144
 *                 c._defaults.append(Default.factory(policy, c, None, None, symbol.default_type, None))
 * 
 *             if symbol.default_range:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, None, None, symbol.default_range))
 * 
*/
      }

      /* "setools/policyrep/objclass.pxi":147
 *                 c._defaults.append(Default.factory(policy, c, None, None, None, symbol.default_range))
 * 
 *             return c             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, other):
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __Pyx_INCREF((PyObject *)__pyx_v_c);
      __pyx_r = __pyx_v_c;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/objclass.pxi":95
 *             ObjClass c
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _objclass_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/objclass.pxi":83
 *         uint32_t nprim
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline ObjClass factory(SELinuxPolicy policy, sepol.class_datum_t *symbol):
 *         """Factory function for creating ObjClass objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":149
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             if other in self.common.perms:
*/

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_8ObjClass_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static int __pyx_pw_7setools_9policyrep_8ObjClass_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass___contains__(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7setools_9policyrep_8ObjClass___contains__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__contains__", 0);

  /* "setools/policyrep/objclass.pxi":150
 * 
 *     def __contains__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             if other in self.common.perms:
 *                 return True
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/objclass.pxi":151
 *     def __contains__(self, other):
 *         try:
 *             if other in self.common.perms:             # <<<<<<<<<<<<<<
 *                 return True
 *         except NoCommon:
*/
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_common); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 151, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_perms); if (unlikely(!__pyx_t_5)) __PYX_ERR(16, 151, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_other, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(16, 151, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_6) {

        /* "setools/policyrep/objclass.pxi":152
 *         try:
 *             if other in self.common.perms:
 *                 return True             # <<<<<<<<<<<<<<
 *         except NoCommon:
 *             pass
*/
        __pyx_r = 1;
        goto __pyx_L7_try_return;

        /* "setools/policyrep/objclass.pxi":151
 *     def __contains__(self, other):
 *         try:
 *             if other in self.common.perms:             # <<<<<<<<<<<<<<
 *                 return True
 *         except NoCommon:
*/
      }

      /* "setools/policyrep/objclass.pxi":150
 * 
 *     def __contains__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             if other in self.common.perms:
 *                 return True
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/objclass.pxi":153
 *             if other in self.common.perms:
 *                 return True
 *         except NoCommon:             # <<<<<<<<<<<<<<
 *             pass
 * 
*/
    __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_NoCommon); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 153, __pyx_L5_except_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_5, __pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_ErrRestore(__pyx_t_5, __pyx_t_4, __pyx_t_7);
    __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_7 = 0;
    if (__pyx_t_9) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/objclass.pxi":150
 * 
 *     def __contains__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             if other in self.common.perms:
 *                 return True
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "setools/policyrep/objclass.pxi":156
 *             pass
 * 
 *         return other in self.perms             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_other, __pyx_v_self->perms, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(16, 156, __pyx_L1_error)
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":149
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             if other in self.common.perms:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":158
 *         return other in self.perms
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def common(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_6common_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_6common_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_6common___get__(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_6common___get__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/objclass.pxi":166
 *         NoCommon    The object class does not inherit a common.
 *         """
 *         if self._common:             # <<<<<<<<<<<<<<
 *             return self._common
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_common)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(16, 166, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/objclass.pxi":167
 *         """
 *         if self._common:
 *             return self._common             # <<<<<<<<<<<<<<
 *         else:
 *             raise NoCommon(f"{self.name} does not inherit a common.")
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_self->_common);
    __pyx_r = ((PyObject *)__pyx_v_self->_common);
    goto __pyx_L0;

    /* "setools/policyrep/objclass.pxi":166
 *         NoCommon    The object class does not inherit a common.
 *         """
 *         if self._common:             # <<<<<<<<<<<<<<
 *             return self._common
 *         else:
*/
  }

  /* "setools/policyrep/objclass.pxi":169
 *             return self._common
 *         else:
 *             raise NoCommon(f"{self.name} does not inherit a common.")             # <<<<<<<<<<<<<<
 * 
 *     def constraints(self):
*/
  /*else*/ {
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_NoCommon); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.name); if (unlikely(!__pyx_t_5)) __PYX_ERR(16, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_does_not_inherit_a_common); if (unlikely(!__pyx_t_6)) __PYX_ERR(16, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(16, 169, __pyx_L1_error)
  }

  /* "setools/policyrep/objclass.pxi":158
 *         return other in self.perms
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def common(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.common.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":171
 *             raise NoCommon(f"{self.name} does not inherit a common.")
 * 
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator for the constraints that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_3constraints(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_8ObjClass_2constraints, "Iterator for the constraints that apply to this class.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_8ObjClass_3constraints = {"constraints", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_3constraints, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8ObjClass_2constraints};
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_3constraints(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("constraints (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("constraints", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("constraints", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_2constraints(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_2constraints(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  class_datum_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("constraints", 0);

  /* "setools/policyrep/objclass.pxi":173
 *     def constraints(self):
 *         """Iterator for the constraints that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key             # <<<<<<<<<<<<<<
 *         if self._constraints is None:
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,
*/
  __pyx_v_symbol = ((class_datum_t *)__pyx_v_self->__pyx_base.__pyx_base.key);

  /* "setools/policyrep/objclass.pxi":174
 *         """Iterator for the constraints that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._constraints is None:             # <<<<<<<<<<<<<<
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,
 *                                                                 symbol.constraints))
*/
  __pyx_t_1 = (__pyx_v_self->_constraints == ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "setools/policyrep/objclass.pxi":175
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._constraints is None:
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,             # <<<<<<<<<<<<<<
 *                                                                 symbol.constraints))
 * 
*/
    __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_2);

    /* "setools/policyrep/objclass.pxi":176
 *         if self._constraints is None:
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,
 *                                                                 symbol.constraints))             # <<<<<<<<<<<<<<
 * 
 *         return iter(self._constraints)
*/
    __pyx_t_3 = __pyx_f_7setools_9policyrep_18ConstraintIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_self, __pyx_v_symbol->constraints); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/objclass.pxi":175
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._constraints is None:
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,             # <<<<<<<<<<<<<<
 *                                                                 symbol.constraints))
 * 
*/
    __pyx_t_2 = __Pyx_PySequence_ListKeepNew(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_self->_constraints);
    __Pyx_DECREF(__pyx_v_self->_constraints);
    __pyx_v_self->_constraints = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/objclass.pxi":174
 *         """Iterator for the constraints that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._constraints is None:             # <<<<<<<<<<<<<<
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,
 *                                                                 symbol.constraints))
*/
  }

  /* "setools/policyrep/objclass.pxi":178
 *                                                                 symbol.constraints))
 * 
 *         return iter(self._constraints)             # <<<<<<<<<<<<<<
 * 
 *     def defaults(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_v_self->_constraints;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":171
 *             raise NoCommon(f"{self.name} does not inherit a common.")
 * 
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator for the constraints that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.constraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":180
 *         return iter(self._constraints)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator for the defaults for this object class."""
 *         return iter(self._defaults)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_5defaults(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_8ObjClass_4defaults, "Iterator for the defaults for this object class.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_8ObjClass_5defaults = {"defaults", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_5defaults, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8ObjClass_4defaults};
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_5defaults(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("defaults (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("defaults", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("defaults", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_4defaults(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_4defaults(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("defaults", 0);

  /* "setools/policyrep/objclass.pxi":182
 *     def defaults(self):
 *         """Iterator for the defaults for this object class."""
 *         return iter(self._defaults)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_defaults;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":180
 *         return iter(self._constraints)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator for the defaults for this object class."""
 *         return iter(self._defaults)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.defaults", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":184
 *         return iter(self._defaults)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         stmt = f"class {self.name}\n"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_7statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8ObjClass_7statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_7statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_7statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_6statement(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_6statement(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  PyObject *__pyx_v_stmt = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2[3];
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  int __pyx_t_11;
  size_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/objclass.pxi":185
 * 
 *     def statement(self):
 *         stmt = f"class {self.name}\n"             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2[0] = __pyx_mstate_global->__pyx_kp_u_class;
  __pyx_t_2[1] = __pyx_t_1;
  __pyx_t_2[2] = __pyx_mstate_global->__pyx_kp_u__27;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, 6 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stmt = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/objclass.pxi":187
 *         stmt = f"class {self.name}\n"
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             stmt += f"inherits {self.common.name}\n"
 *         except NoCommon:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_6);
    /*try:*/ {

      /* "setools/policyrep/objclass.pxi":188
 * 
 *         try:
 *             stmt += f"inherits {self.common.name}\n"             # <<<<<<<<<<<<<<
 *         except NoCommon:
 *             pass
*/
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_common); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 188, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 188, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 188, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_2[0] = __pyx_mstate_global->__pyx_kp_u_inherits;
      __pyx_t_2[1] = __pyx_t_3;
      __pyx_t_2[2] = __pyx_mstate_global->__pyx_kp_u__27;
      __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, 9 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
      if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 188, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 188, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "setools/policyrep/objclass.pxi":187
 *         stmt = f"class {self.name}\n"
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             stmt += f"inherits {self.common.name}\n"
 *         except NoCommon:
*/
    }
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "setools/policyrep/objclass.pxi":189
 *         try:
 *             stmt += f"inherits {self.common.name}\n"
 *         except NoCommon:             # <<<<<<<<<<<<<<
 *             pass
 * 
*/
    __Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_1, &__pyx_t_7);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_NoCommon); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 189, __pyx_L5_except_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_ErrRestore(__pyx_t_3, __pyx_t_1, __pyx_t_7);
    __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_7 = 0;
    if (__pyx_t_9) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/objclass.pxi":187
 *         stmt = f"class {self.name}\n"
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             stmt += f"inherits {self.common.name}\n"
 *         except NoCommon:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    __pyx_L8_try_end:;
  }

  /* "setools/policyrep/objclass.pxi":193
 * 
 *         # a class that inherits may not have additional permissions
 *         if len(self.perms) > 0:             # <<<<<<<<<<<<<<
 *             # backslashes not allowed in f-strings
 *             stmt += "{{\n\t{0}\n}}".format('\n\t'.join(sorted(self.perms)))
*/
  __pyx_t_7 = __pyx_v_self->perms;
  __Pyx_INCREF(__pyx_t_7);
  if (unlikely(__pyx_t_7 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(16, 193, __pyx_L1_error)
  }
  __pyx_t_10 = __Pyx_PySet_GET_SIZE(__pyx_t_7); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(16, 193, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_11 = (__pyx_t_10 > 0);
  if (__pyx_t_11) {

    /* "setools/policyrep/objclass.pxi":195
 *         if len(self.perms) > 0:
 *             # backslashes not allowed in f-strings
 *             stmt += "{{\n\t{0}\n}}".format('\n\t'.join(sorted(self.perms)))             # <<<<<<<<<<<<<<
 * 
 *         return stmt
*/
    __pyx_t_1 = __pyx_mstate_global->__pyx_kp_u_0;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_3 = __pyx_v_self->perms;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_8 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely((PyList_Sort(__pyx_t_8) < 0))) __PYX_ERR(16, 195, __pyx_L1_error)
    __pyx_t_3 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__26, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_12 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_3};
      __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_format_2, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(16, 195, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
    }
    __pyx_t_3 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlaceSafe(__pyx_v_stmt, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "setools/policyrep/objclass.pxi":193
 * 
 *         # a class that inherits may not have additional permissions
 *         if len(self.perms) > 0:             # <<<<<<<<<<<<<<
 *             # backslashes not allowed in f-strings
 *             stmt += "{{\n\t{0}\n}}".format('\n\t'.join(sorted(self.perms)))
*/
  }

  /* "setools/policyrep/objclass.pxi":197
 *             stmt += "{{\n\t{0}\n}}".format('\n\t'.join(sorted(self.perms)))
 * 
 *         return stmt             # <<<<<<<<<<<<<<
 * 
 *     def validatetrans(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stmt);
  __pyx_r = __pyx_v_stmt;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":184
 *         return iter(self._defaults)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         stmt = f"class {self.name}\n"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":199
 *         return stmt
 * 
 *     def validatetrans(self):             # <<<<<<<<<<<<<<
 *         """Iterator for validatetrans that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_9validatetrans(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_8ObjClass_8validatetrans, "Iterator for validatetrans that apply to this class.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_8ObjClass_9validatetrans = {"validatetrans", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_9validatetrans, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8ObjClass_8validatetrans};
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_9validatetrans(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("validatetrans (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("validatetrans", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("validatetrans", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_8validatetrans(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_8validatetrans(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  class_datum_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("validatetrans", 0);

  /* "setools/policyrep/objclass.pxi":201
 *     def validatetrans(self):
 *         """Iterator for validatetrans that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key             # <<<<<<<<<<<<<<
 *         if self._validatetrans is None:
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,
*/
  __pyx_v_symbol = ((class_datum_t *)__pyx_v_self->__pyx_base.__pyx_base.key);

  /* "setools/policyrep/objclass.pxi":202
 *         """Iterator for validatetrans that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._validatetrans is None:             # <<<<<<<<<<<<<<
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,
 *                                                                      symbol.validatetrans))
*/
  __pyx_t_1 = (__pyx_v_self->_validatetrans == ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "setools/policyrep/objclass.pxi":203
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._validatetrans is None:
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,             # <<<<<<<<<<<<<<
 *                                                                      symbol.validatetrans))
 * 
*/
    __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_2);

    /* "setools/policyrep/objclass.pxi":204
 *         if self._validatetrans is None:
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,
 *                                                                      symbol.validatetrans))             # <<<<<<<<<<<<<<
 * 
 *         return iter(self._validatetrans)
*/
    __pyx_t_3 = __pyx_f_7setools_9policyrep_21ValidatetransIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_self, __pyx_v_symbol->validatetrans); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/objclass.pxi":203
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._validatetrans is None:
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,             # <<<<<<<<<<<<<<
 *                                                                      symbol.validatetrans))
 * 
*/
    __pyx_t_2 = __Pyx_PySequence_ListKeepNew(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_self->_validatetrans);
    __Pyx_DECREF(__pyx_v_self->_validatetrans);
    __pyx_v_self->_validatetrans = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/objclass.pxi":202
 *         """Iterator for validatetrans that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._validatetrans is None:             # <<<<<<<<<<<<<<
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,
 *                                                                      symbol.validatetrans))
*/
  }

  /* "setools/policyrep/objclass.pxi":206
 *                                                                      symbol.validatetrans))
 * 
 *         return iter(self._validatetrans)             # <<<<<<<<<<<<<<
 * 
 * #
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_v_self->_validatetrans;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":199
 *         return stmt
 * 
 *     def validatetrans(self):             # <<<<<<<<<<<<<<
 *         """Iterator for validatetrans that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.validatetrans", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":78
 *         list _constraints
 *         list _validatetrans
 *         readonly frozenset perms             # <<<<<<<<<<<<<<
 *         # class_datum_t->permissions.nprim
 *         # is needed for the permission iterator
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_5perms_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_5perms___get__(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_5perms___get__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->perms);
  __pyx_r = __pyx_v_self->perms;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8ObjClass_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_10__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._common, self._constraints, self._defaults, self._perm_table, self._validatetrans, self.key, self.name, self.nprim, self.perms, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->nprim); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(10); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_common);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_common);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->_common)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_constraints);
  __Pyx_GIVEREF(__pyx_v_self->_constraints);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->_constraints) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_defaults);
  __Pyx_GIVEREF(__pyx_v_self->_defaults);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->_defaults) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_perm_table);
  __Pyx_GIVEREF(__pyx_v_self->_perm_table);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_self->_perm_table) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_validatetrans);
  __Pyx_GIVEREF(__pyx_v_self->_validatetrans);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->_validatetrans) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->__pyx_base.name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 7, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->perms);
  __Pyx_GIVEREF(__pyx_v_self->perms);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 8, __pyx_v_self->perms) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 9, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._common, self._constraints, self._defaults, self._perm_table, self._validatetrans, self.key, self.name, self.nprim, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self._common, self._constraints, self._defaults, self._perm_table, self._validatetrans, self.key, self.name, self.nprim, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._common is not None or self._constraints is not None or self._defaults is not None or self._perm_table is not None or self._validatetrans is not None or self.name is not None or self.perms is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._common, self._constraints, self._defaults, self._perm_table, self._validatetrans, self.key, self.name, self.nprim, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._common is not None or self._constraints is not None or self._defaults is not None or self._perm_table is not None or self._validatetrans is not None or self.name is not None or self.perms is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x90ed6ff, None), state
*/
  /*else*/ {
    __pyx_t_5 = (((PyObject *)__pyx_v_self->_common) != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->_constraints != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->_defaults != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->_perm_table != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->_validatetrans != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->perms != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._common is not None or self._constraints is not None or self._defaults is not None or self._perm_table is not None or self._validatetrans is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ObjClass, (type(self), 0x90ed6ff, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._common is not None or self._constraints is not None or self._defaults is not None or self._perm_table is not None or self._validatetrans is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x90ed6ff, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x90ed6ff, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ObjClass); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_151967487);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_151967487);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_151967487) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._common is not None or self._constraints is not None or self._defaults is not None or self._perm_table is not None or self._validatetrans is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ObjClass, (type(self), 0x90ed6ff, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_ObjClass, (type(self), 0x90ed6ff, None), state
 *     else:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x90ed6ff, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ObjClass__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ObjClass); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_151967487);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_151967487);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_151967487) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x90ed6ff, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ObjClass__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8ObjClass_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ObjClass.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_12__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_ObjClass, (type(self), 0x90ed6ff, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ObjClass__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_ObjClass__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x90ed6ff, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ObjClass__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":215
 *     """Iterate over commons in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_21CommonHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/objclass.pxi":218
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
 *         i = CommonHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 218, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":219
 *         """Factory function for creating Role iterators."""
 *         i = CommonHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/objclass.pxi":220
 *         i = CommonHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/objclass.pxi":221
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 221, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":222
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":215
 *     """Iterate over commons in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.CommonHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":224
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Common.factory(self.policy, <sepol.common_datum_t *>self.curr.datum)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_21CommonHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/objclass.pxi":225
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Common.factory(self.policy, <sepol.common_datum_t *>self.curr.datum)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":226
 *     def __next__(self):
 *         super().__next__()
 *         return Common.factory(self.policy, <sepol.common_datum_t *>self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_6Common_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((common_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":224
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Common.factory(self.policy, <sepol.common_datum_t *>self.curr.datum)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.CommonHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_21CommonHashtabIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_21CommonHashtabIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.CommonHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_21CommonHashtabIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.CommonHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_21CommonHashtabIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.CommonHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":233
 *     """Iterate over roles in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_23ObjClassHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/objclass.pxi":236
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
 *         i = ObjClassHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 236, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":237
 *         """Factory function for creating Role iterators."""
 *         i = ObjClassHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/objclass.pxi":238
 *         i = ObjClassHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/objclass.pxi":239
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 239, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":240
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":233
 *     """Iterate over roles in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ObjClassHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":242
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return ObjClass.factory(self.policy, <sepol.class_datum_t *>self.curr.datum)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/objclass.pxi":243
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return ObjClass.factory(self.policy, <sepol.class_datum_t *>self.curr.datum)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 243, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 243, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":244
 *     def __next__(self):
 *         super().__next__()
 *         return ObjClass.factory(self.policy, <sepol.class_datum_t *>self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((class_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":242
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return ObjClass.factory(self.policy, <sepol.class_datum_t *>self.curr.datum)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.ObjClassHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_23ObjClassHashtabIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ObjClassHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_23ObjClassHashtabIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ObjClassHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ObjClassHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":257
 *         dict perm_table
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, uint32_t vector):
 *         """Factory method for access vectors."""
*/

static PyObject *__pyx_f_7setools_9policyrep_24PermissionVectorIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, uint32_t __pyx_v_vector) {
  struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_com = 0;
  struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  uint32_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/objclass.pxi":261
 *         """Factory method for access vectors."""
 *         cdef Common com
 *         i = PermissionVectorIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.vector = vector
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 261, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":262
 *         cdef Common com
 *         i = PermissionVectorIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.vector = vector
 *         i.perm_max = tclass.nprim
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.policy);
  __pyx_v_i->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/objclass.pxi":263
 *         i = PermissionVectorIterator()
 *         i.policy = policy
 *         i.vector = vector             # <<<<<<<<<<<<<<
 *         i.perm_max = tclass.nprim
 * 
*/
  __pyx_v_i->vector = __pyx_v_vector;

  /* "setools/policyrep/objclass.pxi":264
 *         i.policy = policy
 *         i.vector = vector
 *         i.perm_max = tclass.nprim             # <<<<<<<<<<<<<<
 * 
 *         i.perm_table = tclass._perm_table.copy()
*/
  __pyx_t_4 = __pyx_v_tclass->nprim;
  __pyx_v_i->perm_max = __pyx_t_4;

  /* "setools/policyrep/objclass.pxi":266
 *         i.perm_max = tclass.nprim
 * 
 *         i.perm_table = tclass._perm_table.copy()             # <<<<<<<<<<<<<<
 *         try:
 *             com = tclass.common
*/
  if (unlikely(__pyx_v_tclass->_perm_table == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "copy");
    __PYX_ERR(16, 266, __pyx_L1_error)
  }
  __pyx_t_1 = PyDict_Copy(__pyx_v_tclass->_perm_table); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->perm_table);
  __Pyx_DECREF(__pyx_v_i->perm_table);
  __pyx_v_i->perm_table = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":267
 * 
 *         i.perm_table = tclass._perm_table.copy()
 *         try:             # <<<<<<<<<<<<<<
 *             com = tclass.common
 *             i.perm_table.update(com._perm_table)
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_7);
    /*try:*/ {

      /* "setools/policyrep/objclass.pxi":268
 *         i.perm_table = tclass._perm_table.copy()
 *         try:
 *             com = tclass.common             # <<<<<<<<<<<<<<
 *             i.perm_table.update(com._perm_table)
 *         except NoCommon:
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_tclass), __pyx_mstate_global->__pyx_n_u_common); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 268, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Common))))) __PYX_ERR(16, 268, __pyx_L3_error)
      __pyx_v_com = ((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/objclass.pxi":269
 *         try:
 *             com = tclass.common
 *             i.perm_table.update(com._perm_table)             # <<<<<<<<<<<<<<
 *         except NoCommon:
 *             pass
*/
      __pyx_t_2 = __pyx_v_i->perm_table;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_com->_perm_table};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 269, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/objclass.pxi":267
 * 
 *         i.perm_table = tclass._perm_table.copy()
 *         try:             # <<<<<<<<<<<<<<
 *             com = tclass.common
 *             i.perm_table.update(com._perm_table)
*/
    }
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/objclass.pxi":270
 *             com = tclass.common
 *             i.perm_table.update(com._perm_table)
 *         except NoCommon:             # <<<<<<<<<<<<<<
 *             pass
 * 
*/
    __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_2, &__pyx_t_8);
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_NoCommon); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 270, __pyx_L5_except_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_9);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_8);
    __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_8 = 0;
    if (__pyx_t_10) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/objclass.pxi":267
 * 
 *         i.perm_table = tclass._perm_table.copy()
 *         try:             # <<<<<<<<<<<<<<
 *             com = tclass.common
 *             i.perm_table.update(com._perm_table)
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
    __pyx_L8_try_end:;
  }

  /* "setools/policyrep/objclass.pxi":273
 *             pass
 * 
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 273, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "setools/policyrep/objclass.pxi":274
 * 
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":257
 *         dict perm_table
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, uint32_t vector):
 *         """Factory method for access vectors."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.PermissionVectorIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_com);
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":276
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef str name
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_24PermissionVectorIterator___next__(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator___next__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/objclass.pxi":279
 *         cdef str name
 * 
 *         if not self.curr < self.perm_max:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (!(__pyx_v_self->curr < __pyx_v_self->perm_max));
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/objclass.pxi":280
 * 
 *         if not self.curr < self.perm_max:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         name = self.perm_table[self.curr + 1]
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/objclass.pxi":279
 *         cdef str name
 * 
 *         if not self.curr < self.perm_max:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/objclass.pxi":282
 *             raise StopIteration
 * 
 *         name = self.perm_table[self.curr + 1]             # <<<<<<<<<<<<<<
 * 
 *         self.curr += 1
*/
  if (unlikely(__pyx_v_self->perm_table == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(16, 282, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyLong_From_long((__pyx_v_self->curr + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->perm_table, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(16, 282, __pyx_L1_error)
  __pyx_v_name = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/objclass.pxi":284
 *         name = self.perm_table[self.curr + 1]
 * 
 *         self.curr += 1             # <<<<<<<<<<<<<<
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):
 *             self.curr += 1
*/
  __pyx_v_self->curr = (__pyx_v_self->curr + 1);

  /* "setools/policyrep/objclass.pxi":285
 * 
 *         self.curr += 1
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):             # <<<<<<<<<<<<<<
 *             self.curr += 1
 * 
*/
  while (1) {
    __pyx_t_4 = (__pyx_v_self->curr < __pyx_v_self->perm_max);
    if (__pyx_t_4) {
    } else {
      __pyx_t_1 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (!((__pyx_v_self->vector & (1 << __pyx_v_self->curr)) != 0));
    __pyx_t_1 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/objclass.pxi":286
 *         self.curr += 1
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):
 *             self.curr += 1             # <<<<<<<<<<<<<<
 * 
 *         return name
*/
    __pyx_v_self->curr = (__pyx_v_self->curr + 1);
  }

  /* "setools/policyrep/objclass.pxi":288
 *             self.curr += 1
 * 
 *         return name             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_name);
  __pyx_r = __pyx_v_name;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":276
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef str name
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.PermissionVectorIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":290
 *         return name
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             uint32_t count = 0
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_2__len__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self) {
  uint32_t __pyx_v_count;
  uint32_t __pyx_v_curr;
  Py_ssize_t __pyx_r;
  int __pyx_t_1;

  /* "setools/policyrep/objclass.pxi":292
 *     def __len__(self):
 *         cdef:
 *             uint32_t count = 0             # <<<<<<<<<<<<<<
 *             uint32_t curr = 0
 * 
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/objclass.pxi":293
 *         cdef:
 *             uint32_t count = 0
 *             uint32_t curr = 0             # <<<<<<<<<<<<<<
 * 
 *         while curr < self.perm_max:
*/
  __pyx_v_curr = 0;

  /* "setools/policyrep/objclass.pxi":295
 *             uint32_t curr = 0
 * 
 *         while curr < self.perm_max:             # <<<<<<<<<<<<<<
 *             if self.vector & (1 << curr):
 *                 count += 1
*/
  while (1) {
    __pyx_t_1 = (__pyx_v_curr < __pyx_v_self->perm_max);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/objclass.pxi":296
 * 
 *         while curr < self.perm_max:
 *             if self.vector & (1 << curr):             # <<<<<<<<<<<<<<
 *                 count += 1
 * 
*/
    __pyx_t_1 = ((__pyx_v_self->vector & (1 << __pyx_v_curr)) != 0);
    if (__pyx_t_1) {

      /* "setools/policyrep/objclass.pxi":297
 *         while curr < self.perm_max:
 *             if self.vector & (1 << curr):
 *                 count += 1             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
      __pyx_v_count = (__pyx_v_count + 1);

      /* "setools/policyrep/objclass.pxi":296
 * 
 *         while curr < self.perm_max:
 *             if self.vector & (1 << curr):             # <<<<<<<<<<<<<<
 *                 count += 1
 * 
*/
    }
  }

  /* "setools/policyrep/objclass.pxi":290
 *         return name
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             uint32_t count = 0
*/

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":299
 *                 count += 1
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = 0
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_24PermissionVectorIterator_4reset, "Reset the iterator back to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_24PermissionVectorIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_24PermissionVectorIterator_4reset};
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_4reset(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_4reset(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/objclass.pxi":301
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = 0             # <<<<<<<<<<<<<<
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):
 *             self.curr += 1
*/
  __pyx_v_self->curr = 0;

  /* "setools/policyrep/objclass.pxi":302
 *         """Reset the iterator back to the start."""
 *         self.curr = 0
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):             # <<<<<<<<<<<<<<
 *             self.curr += 1
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_self->curr < __pyx_v_self->perm_max);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_2 = (!((__pyx_v_self->vector & (1 << __pyx_v_self->curr)) != 0));
    __pyx_t_1 = __pyx_t_2;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/objclass.pxi":303
 *         self.curr = 0
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):
 *             self.curr += 1             # <<<<<<<<<<<<<<
*/
    __pyx_v_self->curr = (__pyx_v_self->curr + 1);
  }

  /* "setools/policyrep/objclass.pxi":299
 *                 count += 1
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = 0
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_24PermissionVectorIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.curr, self.perm_max, self.perm_table, self.policy, self.vector)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->curr); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->perm_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->vector); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->perm_table);
  __Pyx_GIVEREF(__pyx_v_self->perm_table);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_self->perm_table) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_3) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.curr, self.perm_max, self.perm_table, self.policy, self.vector)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.curr, self.perm_max, self.perm_table, self.policy, self.vector)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.perm_table is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.curr, self.perm_max, self.perm_table, self.policy, self.vector)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.perm_table is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0x3545a83, None), state
*/
  /*else*/ {
    __pyx_t_6 = (__pyx_v_self->perm_table != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.perm_table is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0x3545a83, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.perm_table is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0x3545a83, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0x3545a83, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PermissionVectorI); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_55859843);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_55859843);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_55859843) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.perm_table is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0x3545a83, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0x3545a83, None), state
 *     else:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0x3545a83, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PermissionVectorIterator__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PermissionVectorI); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_55859843);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_55859843);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_55859843) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.PermissionVectorIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0x3545a83, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PermissionVectorIterator__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_24PermissionVectorIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PermissionVectorIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0x3545a83, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PermissionVectorIterator__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PermissionVectorIterator__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0x3545a83, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PermissionVectorIterator__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PermissionVectorIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":18
 *         uintptr_t key
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_12PolicyObject_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_12PolicyObject_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject___hash__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_12PolicyObject___hash__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/object.pxi":19
 * 
 *     def __hash__(self):
 *         return hash(str(self))             # <<<<<<<<<<<<<<
 * 
 *     def __copy__(self):
*/
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(4, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":18
 *         uintptr_t key
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":21
 *         return hash(str(self))
 * 
 *     def __copy__(self):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         return self
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_3__copy__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12PolicyObject_3__copy__ = {"__copy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicyObject_3__copy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_3__copy__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__copy__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__copy__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__copy__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_2__copy__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_2__copy__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__copy__", 0);

  /* "setools/policyrep/object.pxi":23
 *     def __copy__(self):
 *         # Do not copy.
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __deepcopy__(self, memo):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":21
 *         return hash(str(self))
 * 
 *     def __copy__(self):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         return self
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":25
 *         return self
 * 
 *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         memo[id(self)] = self
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_5__deepcopy__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12PolicyObject_5__deepcopy__ = {"__deepcopy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicyObject_5__deepcopy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_5__deepcopy__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_memo = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__deepcopy__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_memo,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 25, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 25, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__deepcopy__", 0) < (0)) __PYX_ERR(4, 25, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 1, 1, i); __PYX_ERR(4, 25, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 25, __pyx_L3_error)
    }
    __pyx_v_memo = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 25, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_4__deepcopy__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), __pyx_v_memo);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_4__deepcopy__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_memo) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__deepcopy__", 0);

  /* "setools/policyrep/object.pxi":27
 *     def __deepcopy__(self, memo):
 *         # Do not copy.
 *         memo[id(self)] = self             # <<<<<<<<<<<<<<
 *         return self
 * 
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_self)};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_id, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 27, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (unlikely((PyObject_SetItem(__pyx_v_memo, __pyx_t_1, ((PyObject *)__pyx_v_self)) < 0))) __PYX_ERR(4, 27, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/object.pxi":28
 *         # Do not copy.
 *         memo[id(self)] = self
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":25
 *         return self
 * 
 *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         memo[id(self)] = self
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":30
 *         return self
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             # This is a regular Python function, so it cannot
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_6__eq__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_6__eq__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/object.pxi":31
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             # This is a regular Python function, so it cannot
 *             # access the other.key (C) attribute since it is not
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/object.pxi":35
 *             # access the other.key (C) attribute since it is not
 *             # a public attribute.
 *             return self._eq(other)             # <<<<<<<<<<<<<<
 *         except TypeError:
 *             return str(self) == str(other)
*/
      __Pyx_XDECREF(__pyx_r);
      if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject))))) __PYX_ERR(4, 35, __pyx_L3_error)
      __pyx_t_4 = __pyx_f_7setools_9policyrep_12PolicyObject__eq(__pyx_v_self, ((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_other)); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 35, __pyx_L3_error)
      __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 35, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/object.pxi":31
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             # This is a regular Python function, so it cannot
 *             # access the other.key (C) attribute since it is not
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/object.pxi":36
 *             # a public attribute.
 *             return self._eq(other)
 *         except TypeError:             # <<<<<<<<<<<<<<
 *             return str(self) == str(other)
 * 
*/
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
    if (__pyx_t_6) {
      __Pyx_AddTraceback("setools.policyrep.PolicyObject.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(4, 36, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);

      /* "setools/policyrep/object.pxi":37
 *             return self._eq(other)
 *         except TypeError:
 *             return str(self) == str(other)             # <<<<<<<<<<<<<<
 * 
 *     cdef inline bint _eq(self, PolicyObject other):
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 37, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 37, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_t_10, Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(4, 37, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 37, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_r = __pyx_t_10;
      __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/object.pxi":31
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             # This is a regular Python function, so it cannot
 *             # access the other.key (C) attribute since it is not
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/object.pxi":30
 *         return self
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             # This is a regular Python function, so it cannot
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":39
 *             return str(self) == str(other)
 * 
 *     cdef inline bint _eq(self, PolicyObject other):             # <<<<<<<<<<<<<<
 *         """
 *         Low-level equality check for policy objects (C pointers).
*/

static CYTHON_INLINE int __pyx_f_7setools_9policyrep_12PolicyObject__eq(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_other) {
  int __pyx_r;

  /* "setools/policyrep/object.pxi":46
 *         TypeError   other is not a PolicyObject.
 *         """
 *         return self.key == other.key             # <<<<<<<<<<<<<<
 * 
 *     def __ne__(self, other):
*/
  __pyx_r = (__pyx_v_self->key == __pyx_v_other->key);
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":39
 *             return str(self) == str(other)
 * 
 *     cdef inline bint _eq(self, PolicyObject other):             # <<<<<<<<<<<<<<
 *         """
 *         Low-level equality check for policy objects (C pointers).
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":48
 *         return self.key == other.key
 * 
 *     def __ne__(self, other):             # <<<<<<<<<<<<<<
 *         return not self == other
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__ne__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_8__ne__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_8__ne__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ne__", 0);

  /* "setools/policyrep/object.pxi":49
 * 
 *     def __ne__(self, other):
 *         return not self == other             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self), __pyx_v_other, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 49, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(4, 49, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":48
 *         return self.key == other.key
 * 
 *     def __ne__(self, other):             # <<<<<<<<<<<<<<
 *         return not self == other
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__ne__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":51
 *         return not self == other
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_10__lt__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_10__lt__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/object.pxi":53
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":51
 *         return not self == other
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":55
 *         return str(self) < str(other)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.statement()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_13__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_13__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_12__str__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_12__str__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/object.pxi":56
 * 
 *     def __str__(self):
 *         return self.statement()             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_statement, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":55
 *         return str(self) < str(other)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.statement()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":58
 *         return self.statement()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"<{self.__class__.__name__}({repr(self.policy)}, \"{self}\")>"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_14__repr__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_14__repr__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[7];
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "setools/policyrep/object.pxi":59
 * 
 *     def __repr__(self):
 *         return f"<{self.__class__.__name__}({repr(self.policy)}, \"{self}\")>"             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = ((PyObject *)__pyx_v_self->policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyObject_Repr(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u__28;
  __pyx_t_4[1] = __pyx_t_1;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u__3;
  __pyx_t_4[3] = __pyx_t_2;
  __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u__29;
  __pyx_t_4[5] = __pyx_t_3;
  __pyx_t_4[6] = __pyx_mstate_global->__pyx_kp_u__30;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 7, 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 3 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":58
 *         return self.statement()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"<{self.__class__.__name__}({repr(self.policy)}, \"{self}\")>"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":61
 *         return f"<{self.__class__.__name__}({repr(self.policy)}, \"{self}\")>"
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         """
 *         A rendering of the policy statement.  This should be
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_17statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_12PolicyObject_16statement, "\n        A rendering of the policy statement.  This should be\n        overridden by subclasses.\n        ");
static PyMethodDef __pyx_mdef_7setools_9policyrep_12PolicyObject_17statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicyObject_17statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_12PolicyObject_16statement};
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_17statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_16statement(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_16statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/object.pxi":66
 *         overridden by subclasses.
 *         """
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_NotImplementedError))), 0, 0, 0);
  __PYX_ERR(4, 66, __pyx_L1_error)

  /* "setools/policyrep/object.pxi":61
 *         return f"<{self.__class__.__name__}({repr(self.policy)}, \"{self}\")>"
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         """
 *         A rendering of the policy statement.  This should be
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":15
 * 
 *     cdef:
 *         readonly SELinuxPolicy policy             # <<<<<<<<<<<<<<
 *         uintptr_t key
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_6policy_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_6policy_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_6policy___get__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_6policy___get__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->policy);
  __pyx_r = ((PyObject *)__pyx_v_self->policy);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_19__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12PolicyObject_19__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicyObject_19__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_19__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_18__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_18__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x69e74d2, None), state
*/
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->policy) != Py_None);
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x69e74d2, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x69e74d2, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x69e74d2, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_111047890);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_111047890);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_111047890) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x69e74d2, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x69e74d2, None), state
 *     else:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x69e74d2, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyObject__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyObject); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_111047890);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_111047890);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_111047890) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x69e74d2, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyObject__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_21__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12PolicyObject_21__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicyObject_21__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_21__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_20__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_20__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x69e74d2, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyObject__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyObject__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x69e74d2, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyObject__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":75
 *     cdef readonly str name
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         # Default is non-expandable.
 *         return self is other
*/

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_12PolicySymbol_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static int __pyx_pw_7setools_9policyrep_12PolicySymbol_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicySymbol___contains__(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7setools_9policyrep_12PolicySymbol___contains__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  int __pyx_t_1;

  /* "setools/policyrep/object.pxi":77
 *     def __contains__(self, other):
 *         # Default is non-expandable.
 *         return self is other             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __pyx_t_1 = (((PyObject *)__pyx_v_self) == __pyx_v_other);
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":75
 *     cdef readonly str name
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         # Default is non-expandable.
 *         return self is other
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":79
 *         return self is other
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicySymbol_2__str__(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_2__str__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/object.pxi":80
 * 
 *     def __str__(self):
 *         return self.name             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":79
 *         return self is other
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_12PolicySymbol_6generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/object.pxi":82
 *         return self.name
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the symbol into constitent symbols."""
 *         # Default is non-expandable.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_12PolicySymbol_4expand, "Expand the symbol into constitent symbols.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_12PolicySymbol_5expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicySymbol_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_12PolicySymbol_4expand};
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicySymbol_4expand(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_4expand(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_9_expand(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(4, 82, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_12PolicySymbol_6generator, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_expand, __pyx_mstate_global->__pyx_n_u_PolicySymbol_expand, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(4, 82, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicySymbol.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_12PolicySymbol_6generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(4, 82, __pyx_L1_error)
  }

  /* "setools/policyrep/object.pxi":85
 *         """Expand the symbol into constitent symbols."""
 *         # Default is non-expandable.
 *         yield self             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  /* return from generator, yielding value */
  __pyx_generator->resume_label = 1;
  return __pyx_r;
  __pyx_L4_resume_from_yield:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(4, 85, __pyx_L1_error)
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/object.pxi":82
 *         return self.name
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the symbol into constitent symbols."""
 *         # Default is non-expandable.
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":73
 *     """Base class for policy symbols (declared objects: types, users, etc.)"""
 * 
 *     cdef readonly str name             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, other):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_4name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicySymbol_4name___get__(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_4name___get__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_8__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12PolicySymbol_8__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicySymbol_8__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_8__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicySymbol_7__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_7__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->name);
  __Pyx_GIVEREF(__pyx_v_self->name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x00b0124, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->name != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x00b0124, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x00b0124, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x00b0124, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicySymbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_721188);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_721188);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_721188) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x00b0124, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x00b0124, None), state
 *     else:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x00b0124, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicySymbol__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicySymbol); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_721188);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_721188);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_721188) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.PolicySymbol.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicySymbol__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_10__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12PolicySymbol_10__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicySymbol_10__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_10__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicySymbol.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicySymbol_9__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_9__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicySymbol__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicySymbol__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicySymbol__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PolicySymbol.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":92
 *     """Base class for most in-policy labeling statements, (portcon, nodecon, etc.)"""
 * 
 *     cdef readonly Context context             # <<<<<<<<<<<<<<
 * 
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_7context_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_7context_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Ocontext_7context___get__(((struct __pyx_obj_7setools_9policyrep_Ocontext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext_7context___get__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->context);
  __pyx_r = ((PyObject *)__pyx_v_self->context);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Ocontext_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Ocontext_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8Ocontext___reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Ocontext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext___reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x9a91717, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ocontext, (type(self), 0x9a91717, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x9a91717, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x9a91717, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_162076439);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_162076439);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_162076439) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ocontext, (type(self), 0x9a91717, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ocontext, (type(self), 0x9a91717, None), state
 *     else:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x9a91717, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ocontext__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ocontext); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_162076439);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_162076439);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_162076439) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Ocontext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x9a91717, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ocontext__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Ocontext_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Ocontext_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Ocontext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_8Ocontext_2__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Ocontext *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext_2__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ocontext, (type(self), 0x9a91717, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ocontext__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ocontext__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x9a91717, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ocontext__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Ocontext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":104
 *     cdef SELinuxPolicy policy
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return self
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator___iter__(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator___iter__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__", 0);

  /* "setools/policyrep/object.pxi":105
 * 
 *     def __iter__(self):
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":104
 *     cdef SELinuxPolicy policy
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return self
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":107
 *         return self
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator_2__next__(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_2__next__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/object.pxi":108
 * 
 *     def __next__(self):
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_NotImplementedError))), 0, 0, 0);
  __PYX_ERR(4, 108, __pyx_L1_error)

  /* "setools/policyrep/object.pxi":107
 *         return self
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":110
 *         raise NotImplementedError
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_14PolicyIterator_5__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_14PolicyIterator_5__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator_4__len__(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_14PolicyIterator_4__len__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "setools/policyrep/object.pxi":111
 * 
 *     def __len__(self):
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_NotImplementedError))), 0, 0, 0);
  __PYX_ERR(4, 111, __pyx_L1_error)

  /* "setools/policyrep/object.pxi":110
 *         raise NotImplementedError
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyIterator.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":113
 *         raise NotImplementedError
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         raise NotImplementedError
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_7reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_14PolicyIterator_6reset, "Reset the iterator to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_14PolicyIterator_7reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14PolicyIterator_7reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_14PolicyIterator_6reset};
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_7reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator_6reset(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_6reset(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/object.pxi":115
 *     def reset(self):
 *         """Reset the iterator to the start."""
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_NotImplementedError))), 0, 0, 0);
  __PYX_ERR(4, 115, __pyx_L1_error)

  /* "setools/policyrep/object.pxi":113
 *         raise NotImplementedError
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         raise NotImplementedError
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14PolicyIterator_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14PolicyIterator_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.policy,)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_v_self->policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_v_state = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.policy,)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = (self.policy,)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.policy,)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0x823412d, None), state
*/
  /*else*/ {
    __pyx_t_2 = (((PyObject *)__pyx_v_self->policy) != Py_None);
    __pyx_v_use_setstate = __pyx_t_2;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0x823412d, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0x823412d, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0x823412d, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyIterator); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_136528173);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_136528173);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_136528173) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0x823412d, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0x823412d, None), state
 *     else:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0x823412d, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyIterator__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyIterator); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_136528173);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_136528173);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_136528173) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.PolicyIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0x823412d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyIterator__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14PolicyIterator_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14PolicyIterator_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicyIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0x823412d, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyIterator__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyIterator__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0x823412d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyIterator__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PolicyIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":139
 *         size_t bit
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr >= self.bmap.highbit:
 *             raise StopIteration
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_15EbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_EbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  size_t __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/object.pxi":140
 * 
 *     def __next__(self):
 *         if self.curr >= self.bmap.highbit:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (__pyx_v_self->curr >= __pyx_v_self->bmap->highbit);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/object.pxi":141
 *     def __next__(self):
 *         if self.curr >= self.bmap.highbit:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         # Returning the object is delegated
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/object.pxi":140
 * 
 *     def __next__(self):
 *         if self.curr >= self.bmap.highbit:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/object.pxi":146
 *         # to subclasses which should returning
 *         # the object based off of self.bit
 *         self.bit = self.curr             # <<<<<<<<<<<<<<
 * 
 *         self.curr = sepol.ebitmap_next(&self.node, self.curr)
*/
  __pyx_t_2 = __pyx_v_self->curr;
  __pyx_v_self->bit = __pyx_t_2;

  /* "setools/policyrep/object.pxi":148
 *         self.bit = self.curr
 * 
 *         self.curr = sepol.ebitmap_next(&self.node, self.curr)             # <<<<<<<<<<<<<<
 *         while self.curr < self.bmap.highbit and not sepol.ebitmap_node_get_bit(self.node, self.curr):
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)
*/
  __pyx_v_self->curr = ebitmap_next((&__pyx_v_self->node), __pyx_v_self->curr);

  /* "setools/policyrep/object.pxi":149
 * 
 *         self.curr = sepol.ebitmap_next(&self.node, self.curr)
 *         while self.curr < self.bmap.highbit and not sepol.ebitmap_node_get_bit(self.node, self.curr):             # <<<<<<<<<<<<<<
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)
 * 
*/
  while (1) {
    __pyx_t_3 = (__pyx_v_self->curr < __pyx_v_self->bmap->highbit);
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (!(ebitmap_node_get_bit(__pyx_v_self->node, __pyx_v_self->curr) != 0));
    __pyx_t_1 = __pyx_t_3;
    __pyx_L6_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/object.pxi":150
 *         self.curr = sepol.ebitmap_next(&self.node, self.curr)
 *         while self.curr < self.bmap.highbit and not sepol.ebitmap_node_get_bit(self.node, self.curr):
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
    __pyx_v_self->curr = ebitmap_next((&__pyx_v_self->node), __pyx_v_self->curr);
  }

  /* "setools/policyrep/object.pxi":139
 *         size_t bit
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr >= self.bmap.highbit:
 *             raise StopIteration
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.EbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":152
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.ebitmap_node_t *node
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_15EbitmapIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_15EbitmapIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_15EbitmapIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_EbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_15EbitmapIterator_2__len__(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self) {
  ebitmap_node_t *__pyx_v_node;
  size_t __pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  int __pyx_t_1;

  /* "setools/policyrep/object.pxi":156
 *             sepol.ebitmap_node_t *node
 *             size_t curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         count = 0
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/object.pxi":158
 *             size_t count = 0
 * 
 *         count = 0             # <<<<<<<<<<<<<<
 *         curr = sepol.ebitmap_start(self.bmap, &node)
 *         while curr < self.bmap.highbit:
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/object.pxi":159
 * 
 *         count = 0
 *         curr = sepol.ebitmap_start(self.bmap, &node)             # <<<<<<<<<<<<<<
 *         while curr < self.bmap.highbit:
 *             count += sepol.ebitmap_node_get_bit(node, curr)
*/
  __pyx_v_curr = ebitmap_start(__pyx_v_self->bmap, (&__pyx_v_node));

  /* "setools/policyrep/object.pxi":160
 *         count = 0
 *         curr = sepol.ebitmap_start(self.bmap, &node)
 *         while curr < self.bmap.highbit:             # <<<<<<<<<<<<<<
 *             count += sepol.ebitmap_node_get_bit(node, curr)
 *             curr = sepol.ebitmap_next(&node, curr)
*/
  while (1) {
    __pyx_t_1 = (__pyx_v_curr < __pyx_v_self->bmap->highbit);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/object.pxi":161
 *         curr = sepol.ebitmap_start(self.bmap, &node)
 *         while curr < self.bmap.highbit:
 *             count += sepol.ebitmap_node_get_bit(node, curr)             # <<<<<<<<<<<<<<
 *             curr = sepol.ebitmap_next(&node, curr)
 * 
*/
    __pyx_v_count = (__pyx_v_count + ebitmap_node_get_bit(__pyx_v_node, __pyx_v_curr));

    /* "setools/policyrep/object.pxi":162
 *         while curr < self.bmap.highbit:
 *             count += sepol.ebitmap_node_get_bit(node, curr)
 *             curr = sepol.ebitmap_next(&node, curr)             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_v_curr = ebitmap_next((&__pyx_v_node), __pyx_v_curr);
  }

  /* "setools/policyrep/object.pxi":164
 *             curr = sepol.ebitmap_next(&node, curr)
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":152
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.ebitmap_node_t *node
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":166
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = sepol.ebitmap_start(self.bmap, &self.node)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_15EbitmapIterator_4reset, "Reset the iterator back to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_15EbitmapIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15EbitmapIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_15EbitmapIterator_4reset};
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_15EbitmapIterator_4reset(((struct __pyx_obj_7setools_9policyrep_EbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_4reset(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/object.pxi":168
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = sepol.ebitmap_start(self.bmap, &self.node)             # <<<<<<<<<<<<<<
 * 
 *         # advance to first set bit
*/
  __pyx_v_self->curr = ebitmap_start(__pyx_v_self->bmap, (&__pyx_v_self->node));

  /* "setools/policyrep/object.pxi":171
 * 
 *         # advance to first set bit
 *         while self.curr < self.bmap.highbit and not sepol.ebitmap_node_get_bit(self.node, self.curr):             # <<<<<<<<<<<<<<
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)
 * 
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_self->curr < __pyx_v_self->bmap->highbit);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_2 = (!(ebitmap_node_get_bit(__pyx_v_self->node, __pyx_v_self->curr) != 0));
    __pyx_t_1 = __pyx_t_2;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/object.pxi":172
 *         # advance to first set bit
 *         while self.curr < self.bmap.highbit and not sepol.ebitmap_node_get_bit(self.node, self.curr):
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_v_self->curr = ebitmap_next((&__pyx_v_self->node), __pyx_v_self->curr);
  }

  /* "setools/policyrep/object.pxi":166
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = sepol.ebitmap_start(self.bmap, &self.node)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15EbitmapIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15EbitmapIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_15EbitmapIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_EbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.EbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15EbitmapIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15EbitmapIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.EbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_15EbitmapIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_EbitmapIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.EbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":196
 *         unsigned int bucket
 * 
 *     cdef void _next_bucket(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
*/

static void __pyx_f_7setools_9policyrep_15HashtabIterator__next_bucket(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  int __pyx_t_1;

  /* "setools/policyrep/object.pxi":198
 *     cdef void _next_bucket(self):
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1             # <<<<<<<<<<<<<<
 *         if self.bucket < self.table[0].size:
 *             self.node = self.table[0].htable[self.bucket]
*/
  __pyx_v_self->bucket = (__pyx_v_self->bucket + 1);

  /* "setools/policyrep/object.pxi":199
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 *         if self.bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             self.node = self.table[0].htable[self.bucket]
 *         else:
*/
  __pyx_t_1 = (__pyx_v_self->bucket < (__pyx_v_self->table[0])->size);
  if (__pyx_t_1) {

    /* "setools/policyrep/object.pxi":200
 *         self.bucket += 1
 *         if self.bucket < self.table[0].size:
 *             self.node = self.table[0].htable[self.bucket]             # <<<<<<<<<<<<<<
 *         else:
 *             self.node = NULL
*/
    __pyx_v_self->node = ((__pyx_v_self->table[0])->htable[__pyx_v_self->bucket]);

    /* "setools/policyrep/object.pxi":199
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 *         if self.bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             self.node = self.table[0].htable[self.bucket]
 *         else:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/object.pxi":202
 *             self.node = self.table[0].htable[self.bucket]
 *         else:
 *             self.node = NULL             # <<<<<<<<<<<<<<
 * 
 *     cdef void _next_node(self):
*/
  /*else*/ {
    __pyx_v_self->node = NULL;
  }
  __pyx_L3:;

  /* "setools/policyrep/object.pxi":196
 *         unsigned int bucket
 * 
 *     cdef void _next_bucket(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
*/

  /* function exit code */
}

/* "setools/policyrep/object.pxi":204
 *             self.node = NULL
 * 
 *     cdef void _next_node(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
*/

static void __pyx_f_7setools_9policyrep_15HashtabIterator__next_node(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  int __pyx_t_1;
  int __pyx_t_2;
  struct hashtab_node *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "setools/policyrep/object.pxi":206
 *     cdef void _next_node(self):
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:             # <<<<<<<<<<<<<<
 *             self.node = self.node.next
 *         else:
*/
  __pyx_t_2 = (__pyx_v_self->node != NULL);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_self->node->next != NULL);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "setools/policyrep/object.pxi":207
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
 *             self.node = self.node.next             # <<<<<<<<<<<<<<
 *         else:
 *             self._next_bucket()
*/
    __pyx_t_3 = __pyx_v_self->node->next;
    __pyx_v_self->node = __pyx_t_3;

    /* "setools/policyrep/object.pxi":206
 *     cdef void _next_node(self):
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:             # <<<<<<<<<<<<<<
 *             self.node = self.node.next
 *         else:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/object.pxi":209
 *             self.node = self.node.next
 *         else:
 *             self._next_bucket()             # <<<<<<<<<<<<<<
 *             while self.bucket < self.table[0].size and self.node == NULL:
 *                 self._next_bucket()
*/
  /*else*/ {
    ((struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *)__pyx_v_self->__pyx_vtab)->_next_bucket(__pyx_v_self); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 209, __pyx_L1_error)

    /* "setools/policyrep/object.pxi":210
 *         else:
 *             self._next_bucket()
 *             while self.bucket < self.table[0].size and self.node == NULL:             # <<<<<<<<<<<<<<
 *                 self._next_bucket()
 * 
*/
    while (1) {
      __pyx_t_2 = (__pyx_v_self->bucket < (__pyx_v_self->table[0])->size);
      if (__pyx_t_2) {
      } else {
        __pyx_t_1 = __pyx_t_2;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_2 = (__pyx_v_self->node == NULL);
      __pyx_t_1 = __pyx_t_2;
      __pyx_L8_bool_binop_done:;
      if (!__pyx_t_1) break;

      /* "setools/policyrep/object.pxi":211
 *             self._next_bucket()
 *             while self.bucket < self.table[0].size and self.node == NULL:
 *                 self._next_bucket()             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
      ((struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *)__pyx_v_self->__pyx_vtab)->_next_bucket(__pyx_v_self); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 211, __pyx_L1_error)
    }
  }
  __pyx_L3:;

  /* "setools/policyrep/object.pxi":204
 *             self.node = NULL
 * 
 *     cdef void _next_node(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.HashtabIterator._next_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "setools/policyrep/object.pxi":213
 *                 self._next_bucket()
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         #
 *         # Note: cython does not support the regular C pointer
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_15HashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  int __pyx_t_2;
  hashtab_node_t *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/object.pxi":219
 *         # to dereference self.table.
 *         #
 *         if self.table[0] == NULL or self.table[0].nel == 0 or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_2 = ((__pyx_v_self->table[0]) == NULL);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->table[0])->nel == 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_self->bucket >= (__pyx_v_self->table[0])->size);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/object.pxi":220
 *         #
 *         if self.table[0] == NULL or self.table[0].nel == 0 or self.bucket >= self.table[0].size:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         # Returning the object is delegated
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/object.pxi":219
 *         # to dereference self.table.
 *         #
 *         if self.table[0] == NULL or self.table[0].nel == 0 or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/object.pxi":226
 *         # the objects based off of
 *         # self.node.key and/or self.node.datum
 *         self.curr = self.node             # <<<<<<<<<<<<<<
 *         self._next_node()
 * 
*/
  __pyx_t_3 = __pyx_v_self->node;
  __pyx_v_self->curr = __pyx_t_3;

  /* "setools/policyrep/object.pxi":227
 *         # self.node.key and/or self.node.datum
 *         self.curr = self.node
 *         self._next_node()             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  ((struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *)__pyx_v_self->__pyx_vtab)->_next_node(__pyx_v_self); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 227, __pyx_L1_error)

  /* "setools/policyrep/object.pxi":213
 *                 self._next_bucket()
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         #
 *         # Note: cython does not support the regular C pointer
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.HashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":229
 *         self._next_node()
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self.table[0].nel
 * 
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_15HashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_15HashtabIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_15HashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_15HashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  Py_ssize_t __pyx_r;

  /* "setools/policyrep/object.pxi":230
 * 
 *     def __len__(self):
 *         return self.table[0].nel             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = (__pyx_v_self->table[0])->nel;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":229
 *         self._next_node()
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self.table[0].nel
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":232
 *         return self.table[0].nel
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         self.node = self.table[0].htable[0]
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_15HashtabIterator_4reset, "Reset the iterator to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_15HashtabIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15HashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_15HashtabIterator_4reset};
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_15HashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/object.pxi":234
 *     def reset(self):
 *         """Reset the iterator to the start."""
 *         self.node = self.table[0].htable[0]             # <<<<<<<<<<<<<<
 * 
 *         # advance to first item
*/
  __pyx_v_self->node = ((__pyx_v_self->table[0])->htable[0]);

  /* "setools/policyrep/object.pxi":237
 * 
 *         # advance to first item
 *         if self.node == NULL:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
*/
  __pyx_t_1 = (__pyx_v_self->node == NULL);
  if (__pyx_t_1) {

    /* "setools/policyrep/object.pxi":238
 *         # advance to first item
 *         if self.node == NULL:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 * 
*/
    ((struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *)__pyx_v_self->__pyx_vtab)->_next_node(__pyx_v_self); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 238, __pyx_L1_error)

    /* "setools/policyrep/object.pxi":237
 * 
 *         # advance to first item
 *         if self.node == NULL:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
*/
  }

  /* "setools/policyrep/object.pxi":232
 *         return self.table[0].nel
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         self.node = self.table[0].htable[0]
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.HashtabIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15HashtabIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15HashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_15HashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.HashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15HashtabIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15HashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.HashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_15HashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.HashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":261
 *         sepol.ocontext_t *curr
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_16OcontextIterator___next__(((struct __pyx_obj_7setools_9policyrep_OcontextIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator___next__(struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  ocontext_t *__pyx_t_2;
  struct ocontext *__pyx_t_3;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/object.pxi":262
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (__pyx_v_self->curr == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/object.pxi":263
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         # Returning the object is delegated
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/object.pxi":262
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/object.pxi":268
 *         # to subclasses which should returning
 *         # the ocon based off of self.ocon
 *         self.ocon = self.curr             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 * 
*/
  __pyx_t_2 = __pyx_v_self->curr;
  __pyx_v_self->ocon = __pyx_t_2;

  /* "setools/policyrep/object.pxi":269
 *         # the ocon based off of self.ocon
 *         self.ocon = self.curr
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __pyx_t_3 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_3;

  /* "setools/policyrep/object.pxi":261
 *         sepol.ocontext_t *curr
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.OcontextIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":271
 *         self.curr = self.curr.next
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count = 0
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_16OcontextIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_16OcontextIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_16OcontextIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_OcontextIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_16OcontextIterator_2__len__(struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self) {
  size_t __pyx_v_count;
  ocontext_t *__pyx_v_ocon;
  Py_ssize_t __pyx_r;
  ocontext_t *__pyx_t_1;
  int __pyx_t_2;
  struct ocontext *__pyx_t_3;

  /* "setools/policyrep/object.pxi":273
 *     def __len__(self):
 *         cdef:
 *             size_t count = 0             # <<<<<<<<<<<<<<
 *             sepol.ocontext_t *ocon = self.head
 * 
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/object.pxi":274
 *         cdef:
 *             size_t count = 0
 *             sepol.ocontext_t *ocon = self.head             # <<<<<<<<<<<<<<
 * 
 *         while ocon:
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_ocon = __pyx_t_1;

  /* "setools/policyrep/object.pxi":276
 *             sepol.ocontext_t *ocon = self.head
 * 
 *         while ocon:             # <<<<<<<<<<<<<<
 *             count += 1
 *             ocon = ocon.next
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_ocon != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/object.pxi":277
 * 
 *         while ocon:
 *             count += 1             # <<<<<<<<<<<<<<
 *             ocon = ocon.next
 * 
*/
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/object.pxi":278
 *         while ocon:
 *             count += 1
 *             ocon = ocon.next             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_t_3 = __pyx_v_ocon->next;
    __pyx_v_ocon = __pyx_t_3;
  }

  /* "setools/policyrep/object.pxi":280
 *             ocon = ocon.next
 * 
 *         return count             # <<<<<<<<<<<<<<
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":271
 *         self.curr = self.curr.next
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count = 0
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_16OcontextIterator_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16OcontextIterator_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_16OcontextIterator_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_OcontextIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.OcontextIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_16OcontextIterator_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16OcontextIterator_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.OcontextIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_16OcontextIterator_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_OcontextIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.OcontextIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":12
 *     """A policy capability."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline PolicyCapability factory(SELinuxPolicy policy, size_t bit):
 *         """Factory function for creating PolicyCapability objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_f_7setools_9policyrep_16PolicyCapability_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, size_t __pyx_v_bit) {
  struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/polcap.pxi":15
 *     cdef inline PolicyCapability factory(SELinuxPolicy policy, size_t bit):
 *         """Factory function for creating PolicyCapability objects."""
 *         cdef PolicyCapability r = PolicyCapability.__new__(PolicyCapability)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.name = intern(sepol.sepol_polcap_getname(bit))
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_PolicyCapability(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyCapability), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 15, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/polcap.pxi":16
 *         """Factory function for creating PolicyCapability objects."""
 *         cdef PolicyCapability r = PolicyCapability.__new__(PolicyCapability)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.name = intern(sepol.sepol_polcap_getname(bit))
 *         return r
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy);
  __pyx_v_r->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/polcap.pxi":17
 *         cdef PolicyCapability r = PolicyCapability.__new__(PolicyCapability)
 *         r.policy = policy
 *         r.name = intern(sepol.sepol_polcap_getname(bit))             # <<<<<<<<<<<<<<
 *         return r
 * 
*/
  __pyx_t_1 = __Pyx_PyUnicode_FromString(sepol_polcap_getname(__pyx_v_bit)); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(17, 17, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.name);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.name);
  __pyx_v_r->__pyx_base.name = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/polcap.pxi":18
 *         r.policy = policy
 *         r.name = intern(sepol.sepol_polcap_getname(bit))
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/polcap.pxi":12
 *     """A policy capability."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline PolicyCapability factory(SELinuxPolicy policy, size_t bit):
 *         """Factory function for creating PolicyCapability objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":20
 *         return r
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self.policy == other.policy \
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_16PolicyCapability___eq__(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability___eq__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/polcap.pxi":21
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.policy == other.policy \
 *                 and self.name == other.name
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/polcap.pxi":22
 *     def __eq__(self, other):
 *         try:
 *             return self.policy == other.policy \             # <<<<<<<<<<<<<<
 *                 and self.name == other.name
 *         except AttributeError:
*/
      __Pyx_XDECREF(__pyx_r);

      /* "setools/policyrep/polcap.pxi":23
 *         try:
 *             return self.policy == other.policy \
 *                 and self.name == other.name             # <<<<<<<<<<<<<<
 *         except AttributeError:
 *             return self.name == str(other)
*/
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_policy); if (unlikely(!__pyx_t_5)) __PYX_ERR(17, 22, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy), __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(17, 22, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(17, 22, __pyx_L3_error)
      if (__pyx_t_7) {
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_4 = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(17, 23, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = PyObject_RichCompare(__pyx_v_self->__pyx_base.name, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(17, 23, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_4 = __pyx_t_5;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_L9_bool_binop_done:;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/polcap.pxi":21
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.policy == other.policy \
 *                 and self.name == other.name
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/polcap.pxi":24
 *             return self.policy == other.policy \
 *                 and self.name == other.name
 *         except AttributeError:             # <<<<<<<<<<<<<<
 *             return self.name == str(other)
 * 
*/
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError))));
    if (__pyx_t_8) {
      __Pyx_AddTraceback("setools.policyrep.PolicyCapability.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(17, 24, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);

      /* "setools/policyrep/polcap.pxi":25
 *                 and self.name == other.name
 *         except AttributeError:
 *             return self.name == str(other)             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_9)) __PYX_ERR(17, 25, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_self->__pyx_base.name, __pyx_t_9, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(17, 25, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyBool_FromLong(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(17, 25, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_r = __pyx_t_9;
      __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/polcap.pxi":21
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.policy == other.policy \
 *                 and self.name == other.name
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/polcap.pxi":20
 *         return r
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self.policy == other.policy \
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":27
 *             return self.name == str(other)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_16PolicyCapability_3__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_16PolicyCapability_3__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_16PolicyCapability_2__hash__(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_16PolicyCapability_2__hash__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/polcap.pxi":28
 * 
 *     def __hash__(self):
 *         return hash(self.name)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __pyx_t_1 = __pyx_v_self->__pyx_base.name;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(17, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/polcap.pxi":27
 *             return self.name == str(other)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":30
 *         return hash(self.name)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"policycap {self.name};"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_16PolicyCapability_5statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16PolicyCapability_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_5statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_16PolicyCapability_4statement(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_4statement(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2[3];
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/polcap.pxi":31
 * 
 *     def statement(self):
 *         return f"policycap {self.name};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2[0] = __pyx_mstate_global->__pyx_kp_u_policycap;
  __pyx_t_2[1] = __pyx_t_1;
  __pyx_t_2[2] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, 10 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(17, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/polcap.pxi":30
 *         return hash(self.name)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"policycap {self.name};"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_16PolicyCapability_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16PolicyCapability_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_16PolicyCapability_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->__pyx_base.name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x00b0124, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x00b0124, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x00b0124, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x00b0124, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyCapability); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_721188);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_721188);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_721188) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x00b0124, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x00b0124, None), state
 *     else:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x00b0124, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyCapability__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyCapability); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_721188);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_721188);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_721188) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyCapability__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_16PolicyCapability_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16PolicyCapability_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_16PolicyCapability_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyCapability__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyCapability__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyCapability__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":38
 *     """Iterator for policy capability statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating PolicyCapability iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_24PolicyCapabilityIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap) {
  struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/polcap.pxi":41
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating PolicyCapability iterators."""
 *         i = PolicyCapabilityIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = bmap
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 41, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/polcap.pxi":42
 *         """Factory function for creating PolicyCapability iterators."""
 *         i = PolicyCapabilityIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = bmap
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/polcap.pxi":43
 *         i = PolicyCapabilityIterator()
 *         i.policy = policy
 *         i.bmap = bmap             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.bmap = __pyx_v_bmap;

  /* "setools/policyrep/polcap.pxi":44
 *         i.policy = policy
 *         i.bmap = bmap
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/polcap.pxi":45
 *         i.bmap = bmap
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/polcap.pxi":38
 *     """Iterator for policy capability statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating PolicyCapability iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapabilityIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":47
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return PolicyCapability.factory(self.policy, self.bit)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator___next__(((struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator___next__(struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/polcap.pxi":48
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return PolicyCapability.factory(self.policy, self.bit)
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(17, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/polcap.pxi":49
 *     def __next__(self):
 *         super().__next__()
 *         return PolicyCapability.factory(self.policy, self.bit)             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_16PolicyCapability_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.bit)); if (unlikely(!__pyx_t_3)) __PYX_ERR(17, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/polcap.pxi":47
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return PolicyCapability.factory(self.policy, self.bit)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapabilityIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_24PolicyCapabilityIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyCapabilityIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_24PolicyCapabilityIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicyCapabilityIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyCapabilityIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":28
 *     """A role allow rule."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline RoleAllow factory(SELinuxPolicy policy, sepol.role_allow_t *symbol):
 *         """Factory function for creating RoleAllow objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_f_7setools_9policyrep_9RoleAllow_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_allow_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  role_datum_t *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/rbacrule.pxi":31
 *     cdef inline RoleAllow factory(SELinuxPolicy policy, sepol.role_allow_t *symbol):
 *         """Factory function for creating RoleAllow objects."""
 *         cdef RoleAllow r = RoleAllow.__new__(RoleAllow)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_RoleAllow(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllow), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 31, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":32
 *         """Factory function for creating RoleAllow objects."""
 *         cdef RoleAllow r = RoleAllow.__new__(RoleAllow)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.allow
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy);
  __pyx_v_r->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/rbacrule.pxi":33
 *         cdef RoleAllow r = RoleAllow.__new__(RoleAllow)
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         r.ruletype = RBACRuletype.allow
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
*/
  __pyx_v_r->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/rbacrule.pxi":34
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.allow             # <<<<<<<<<<<<<<
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_RBACRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_allow); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":35
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.allow
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))             # <<<<<<<<<<<<<<
 *         r.target = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 *         r.origin = None
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->role - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(18, 35, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(__pyx_v_policy, __pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.source);
  __pyx_v_r->__pyx_base.source = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":36
 *         r.ruletype = RBACRuletype.allow
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))             # <<<<<<<<<<<<<<
 *         r.origin = None
 *         return r
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->new_role - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(18, 36, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(__pyx_v_policy, __pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.target);
  __pyx_v_r->__pyx_base.target = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":37
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 *         r.origin = None             # <<<<<<<<<<<<<<
 *         return r
 * 
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.origin);
  __pyx_v_r->__pyx_base.origin = Py_None;

  /* "setools/policyrep/rbacrule.pxi":38
 *         r.target = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 *         r.origin = None
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":28
 *     """A role allow rule."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline RoleAllow factory(SELinuxPolicy policy, sepol.role_allow_t *symbol):
 *         """Factory function for creating RoleAllow objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":40
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_9RoleAllow_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_9RoleAllow_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow___hash__(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_9RoleAllow___hash__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[5];
  PyObject *__pyx_t_5 = NULL;
  Py_hash_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/rbacrule.pxi":41
 * 
 *     def __hash__(self):
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_t_1;
  __pyx_t_4[1] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_4[2] = __pyx_t_2;
  __pyx_t_4[3] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_4[4] = __pyx_t_3;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = PyObject_Hash(__pyx_t_5); if (unlikely(__pyx_t_6 == ((Py_hash_t)-1))) __PYX_ERR(18, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":40
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":43
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_2__lt__(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_2__lt__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/rbacrule.pxi":44
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":43
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_9RoleAllow_6generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/rbacrule.pxi":46
 *         return str(self) < str(other)
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleAllow r
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_9RoleAllow_4expand, "Expand the rule into an equivalent set of rules without attributes.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_9RoleAllow_5expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9RoleAllow_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_9RoleAllow_4expand};
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_4expand(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_4expand(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_10_expand(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(18, 46, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_9RoleAllow_6generator2, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_expand, __pyx_mstate_global->__pyx_n_u_RoleAllow_expand, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(18, 46, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_9RoleAllow_6generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *(*__pyx_t_11)(PyObject *);
  uintptr_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L11_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(18, 46, __pyx_L1_error)
  }

  /* "setools/policyrep/rbacrule.pxi":49
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleAllow r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 """Factory function for creating ExpandedRoleAllow objects."""
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.origin == Py_None);
  if (__pyx_t_1) {

    /* "setools/policyrep/rbacrule.pxi":50
 *         cdef RoleAllow r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 """Factory function for creating ExpandedRoleAllow objects."""
 *                 r = RoleAllow.__new__(RoleAllow)
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 50, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 50, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_self->__pyx_base.source;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 50, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_8 = __pyx_cur_scope->__pyx_v_self->__pyx_base.target;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 50, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_6};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 50, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5);
      __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 50, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(18, 50, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(18, 50, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference);
          ++__pyx_t_9;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(18, 50, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9));
          #else
          __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_9);
          #endif
          ++__pyx_t_9;
        }
        if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 50, __pyx_L1_error)
      } else {
        __pyx_t_2 = __pyx_t_10(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(18, 50, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_2);
      if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
        PyObject* sequence = __pyx_t_2;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(18, 50, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_6);
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_4);
        } else {
          __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 50, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_6);
          __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 50, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_4);
        }
        #else
        __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 50, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 50, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 50, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3);
        index = 0; __pyx_t_6 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_3), 2) < (0)) __PYX_ERR(18, 50, __pyx_L1_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(18, 50, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;

      /* "setools/policyrep/rbacrule.pxi":52
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 """Factory function for creating ExpandedRoleAllow objects."""
 *                 r = RoleAllow.__new__(RoleAllow)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
*/
      __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_RoleAllow(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllow), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 52, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
      __Pyx_XGOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_t_2));
      __Pyx_GIVEREF((PyObject *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/rbacrule.pxi":53
 *                 """Factory function for creating ExpandedRoleAllow objects."""
 *                 r = RoleAllow.__new__(RoleAllow)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/rbacrule.pxi":54
 *                 r = RoleAllow.__new__(RoleAllow)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
*/
      __pyx_t_12 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.key = __pyx_t_12;

      /* "setools/policyrep/rbacrule.pxi":55
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
*/
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "setools/policyrep/rbacrule.pxi":56
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.origin = self
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/rbacrule.pxi":57
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/rbacrule.pxi":58
 *                 r.source = s
 *                 r.target = t
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/rbacrule.pxi":59
 *                 r.target = t
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(18, 59, __pyx_L1_error)

      /* "setools/policyrep/rbacrule.pxi":50
 *         cdef RoleAllow r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 """Factory function for creating ExpandedRoleAllow objects."""
 *                 r = RoleAllow.__new__(RoleAllow)
*/
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/rbacrule.pxi":49
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleAllow r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 """Factory function for creating ExpandedRoleAllow objects."""
*/
    goto __pyx_L4;
  }

  /* "setools/policyrep/rbacrule.pxi":63
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  /*else*/ {
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L11_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(18, 63, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/rbacrule.pxi":46
 *         return str(self) < str(other)
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleAllow r
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":65
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target};"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9RoleAllow_8statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9RoleAllow_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_7statement(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_7statement(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[6];
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/rbacrule.pxi":66
 * 
 *     def statement(self):
 *         return f"{self.ruletype} {self.source} {self.target};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_t_1;
  __pyx_t_4[1] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[2] = __pyx_t_2;
  __pyx_t_4[3] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[4] = __pyx_t_3;
  __pyx_t_4[5] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 6, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":65
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target};"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9RoleAllow_10__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9RoleAllow_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.extended); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->__pyx_base.origin) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->__pyx_base.ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.source);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_self->__pyx_base.source) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.target);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->__pyx_base.target) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0x9f93d87, None), state
*/
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->__pyx_base.origin != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.source != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.target != Py_None);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_RoleAllow, (type(self), 0x9f93d87, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0x9f93d87, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0x9f93d87, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RoleAllow); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_167329159);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_167329159);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_167329159) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_RoleAllow, (type(self), 0x9f93d87, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_RoleAllow, (type(self), 0x9f93d87, None), state
 *     else:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0x9f93d87, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_RoleAllow__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RoleAllow); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_167329159);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_167329159);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_167329159) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0x9f93d87, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoleAllow__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9RoleAllow_12__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9RoleAllow_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_RoleAllow, (type(self), 0x9f93d87, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_RoleAllow__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_RoleAllow__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0x9f93d87, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoleAllow__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":77
 *         Role dft
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline RoleTransition factory(SELinuxPolicy policy,
 *                                        sepol.role_trans_t *symbol):
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_f_7setools_9policyrep_14RoleTransition_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_trans_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  role_datum_t *__pyx_t_3;
  type_datum_t *__pyx_t_4;
  class_datum_t *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/rbacrule.pxi":81
 *                                        sepol.role_trans_t *symbol):
 *         """Factory function for creating RoleTransition objects."""
 *         cdef RoleTransition r = RoleTransition.__new__(RoleTransition)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_RoleTransition(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransition), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 81, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":82
 *         """Factory function for creating RoleTransition objects."""
 *         cdef RoleTransition r = RoleTransition.__new__(RoleTransition)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.role_transition
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy);
  __pyx_v_r->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/rbacrule.pxi":83
 *         cdef RoleTransition r = RoleTransition.__new__(RoleTransition)
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         r.ruletype = RBACRuletype.role_transition
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
*/
  __pyx_v_r->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/rbacrule.pxi":84
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.role_transition             # <<<<<<<<<<<<<<
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.type - 1))
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_RBACRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_role_transition); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":85
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.role_transition
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.tclass - 1))
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->role - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(18, 85, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(__pyx_v_policy, __pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.source);
  __pyx_v_r->__pyx_base.source = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":86
 *         r.ruletype = RBACRuletype.role_transition
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.type - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.tclass - 1))
 *         r.dft = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
*/
  __pyx_t_4 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->type - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(18, 86, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_t_4)); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.target);
  __pyx_v_r->__pyx_base.target = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":87
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.tclass - 1))             # <<<<<<<<<<<<<<
 *         r.dft = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 *         r.origin = None
*/
  __pyx_t_5 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->tclass - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(18, 87, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_t_5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->tclass);
  __Pyx_DECREF((PyObject *)__pyx_v_r->tclass);
  __pyx_v_r->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":88
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.tclass - 1))
 *         r.dft = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))             # <<<<<<<<<<<<<<
 *         r.origin = None
 * 
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->new_role - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(18, 88, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(__pyx_v_policy, __pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->dft);
  __Pyx_DECREF((PyObject *)__pyx_v_r->dft);
  __pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":89
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.tclass - 1))
 *         r.dft = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 *         r.origin = None             # <<<<<<<<<<<<<<
 * 
 *         return r
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.origin);
  __pyx_v_r->__pyx_base.origin = Py_None;

  /* "setools/policyrep/rbacrule.pxi":91
 *         r.origin = None
 * 
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":77
 *         Role dft
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline RoleTransition factory(SELinuxPolicy policy,
 *                                        sepol.role_trans_t *symbol):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":93
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|None")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_14RoleTransition_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_14RoleTransition_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition___hash__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_14RoleTransition___hash__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[8];
  PyObject *__pyx_t_6 = NULL;
  Py_hash_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/rbacrule.pxi":94
 * 
 *     def __hash__(self):
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|None")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5[0] = __pyx_t_1;
  __pyx_t_5[1] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_5[2] = __pyx_t_2;
  __pyx_t_5[3] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_5[4] = __pyx_t_3;
  __pyx_t_5[5] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_5[6] = __pyx_t_4;
  __pyx_t_5[7] = __pyx_mstate_global->__pyx_kp_u_None_None;
  __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_5, 8, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 10, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
  if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = PyObject_Hash(__pyx_t_6); if (unlikely(__pyx_t_7 == ((Py_hash_t)-1))) __PYX_ERR(18, 94, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":93
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|None")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":96
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|None")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_2__lt__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_2__lt__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/rbacrule.pxi":97
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 97, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 97, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 97, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":96
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|None")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":99
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default role."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_7default_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_7default___get__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_7default___get__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rbacrule.pxi":102
 *     def default(self):
 *         """The rule's default role."""
 *         return self.dft             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->dft);
  __pyx_r = ((PyObject *)__pyx_v_self->dft);
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":99
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default role."""
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_14RoleTransition_6generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/rbacrule.pxi":104
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleTransition r
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_14RoleTransition_4expand, "Expand the rule into an equivalent set of rules without attributes.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_14RoleTransition_5expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14RoleTransition_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_14RoleTransition_4expand};
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_4expand(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_4expand(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_11_expand(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(18, 104, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_14RoleTransition_6generator3, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_expand, __pyx_mstate_global->__pyx_n_u_RoleTransition_expand, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(18, 104, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_14RoleTransition_6generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *(*__pyx_t_11)(PyObject *);
  uintptr_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L11_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(18, 104, __pyx_L1_error)
  }

  /* "setools/policyrep/rbacrule.pxi":107
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleTransition r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = RoleTransition.__new__(RoleTransition)
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.origin == Py_None);
  if (__pyx_t_1) {

    /* "setools/policyrep/rbacrule.pxi":108
 *         cdef RoleTransition r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = RoleTransition.__new__(RoleTransition)
 *                 r.policy = self.policy
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_self->__pyx_base.source;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 108, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_8 = __pyx_cur_scope->__pyx_v_self->__pyx_base.target;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 108, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_6};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 108, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5);
      __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 108, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(18, 108, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(18, 108, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference);
          ++__pyx_t_9;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(18, 108, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9));
          #else
          __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_9);
          #endif
          ++__pyx_t_9;
        }
        if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 108, __pyx_L1_error)
      } else {
        __pyx_t_2 = __pyx_t_10(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(18, 108, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_2);
      if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
        PyObject* sequence = __pyx_t_2;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(18, 108, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_6);
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_4);
        } else {
          __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 108, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_6);
          __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 108, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_4);
        }
        #else
        __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 108, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 108, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 108, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3);
        index = 0; __pyx_t_6 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_3), 2) < (0)) __PYX_ERR(18, 108, __pyx_L1_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(18, 108, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;

      /* "setools/policyrep/rbacrule.pxi":109
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = RoleTransition.__new__(RoleTransition)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
*/
      __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_RoleTransition(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransition), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 109, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
      __Pyx_XGOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_t_2));
      __Pyx_GIVEREF((PyObject *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/rbacrule.pxi":110
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = RoleTransition.__new__(RoleTransition)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/rbacrule.pxi":111
 *                 r = RoleTransition.__new__(RoleTransition)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
*/
      __pyx_t_12 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.key = __pyx_t_12;

      /* "setools/policyrep/rbacrule.pxi":112
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
*/
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "setools/policyrep/rbacrule.pxi":113
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/rbacrule.pxi":114
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/rbacrule.pxi":115
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.dft = self.dft
 *                 r.origin = self
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->tclass);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->tclass);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->tclass);
      __pyx_cur_scope->__pyx_v_r->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/rbacrule.pxi":116
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->dft);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->dft);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->dft);
      __pyx_cur_scope->__pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/rbacrule.pxi":117
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/rbacrule.pxi":118
 *                 r.dft = self.dft
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(18, 118, __pyx_L1_error)

      /* "setools/policyrep/rbacrule.pxi":108
 *         cdef RoleTransition r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = RoleTransition.__new__(RoleTransition)
 *                 r.policy = self.policy
*/
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/rbacrule.pxi":107
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleTransition r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = RoleTransition.__new__(RoleTransition)
*/
    goto __pyx_L4;
  }

  /* "setools/policyrep/rbacrule.pxi":122
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  /*else*/ {
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L11_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(18, 122, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/rbacrule.pxi":104
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleTransition r
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":124
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14RoleTransition_8statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14RoleTransition_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_7statement(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_7statement(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[10];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/rbacrule.pxi":125
 * 
 *     def statement(self):
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7[0] = __pyx_t_1;
  __pyx_t_7[1] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_7[2] = __pyx_t_2;
  __pyx_t_7[3] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_7[4] = __pyx_t_3;
  __pyx_t_7[5] = __pyx_mstate_global->__pyx_kp_u__13;
  __pyx_t_7[6] = __pyx_t_4;
  __pyx_t_7[7] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_7[8] = __pyx_t_6;
  __pyx_t_7[9] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_7, 10, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 5 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":124
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":74
 * 
 *     cdef:
 *         readonly ObjClass tclass             # <<<<<<<<<<<<<<
 *         Role dft
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_6tclass_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_6tclass___get__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->tclass);
  __pyx_r = ((PyObject *)__pyx_v_self->tclass);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14RoleTransition_10__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14RoleTransition_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.dft, self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.extended); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(9); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self->dft);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->dft);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->dft)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_self->__pyx_base.origin) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_self->__pyx_base.ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.source);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->__pyx_base.source) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.target);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 7, __pyx_v_self->__pyx_base.target) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 8, ((PyObject *)__pyx_v_self->tclass)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.dft, self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.dft, self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.dft is not None or self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.dft, self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.dft is not None or self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0xe7c0663, None), state
*/
  /*else*/ {
    __pyx_t_5 = (((PyObject *)__pyx_v_self->dft) != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.origin != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.source != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.target != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->tclass) != Py_None);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.dft is not None or self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_RoleTransition, (type(self), 0xe7c0663, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.dft is not None or self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0xe7c0663, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0xe7c0663, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RoleTransition); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_243009123);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_243009123);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_243009123) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.dft is not None or self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_RoleTransition, (type(self), 0xe7c0663, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_RoleTransition, (type(self), 0xe7c0663, None), state
 *     else:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0xe7c0663, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_RoleTransition__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RoleTransition); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_243009123);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_243009123);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_243009123) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0xe7c0663, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoleTransition__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14RoleTransition_12__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14RoleTransition_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_RoleTransition, (type(self), 0xe7c0663, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_RoleTransition__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_RoleTransition__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0xe7c0663, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoleTransition__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":139
 *         sepol.role_allow_t *curr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.role_allow_t *head):
 *         """Role allow rule iterator factory."""
*/

static PyObject *__pyx_f_7setools_9policyrep_17RoleAllowIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_allow_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/rbacrule.pxi":142
 *     cdef factory(SELinuxPolicy policy, sepol.role_allow_t *head):
 *         """Role allow rule iterator factory."""
 *         i = RoleAllowIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllowIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 142, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":143
 *         """Role allow rule iterator factory."""
 *         i = RoleAllowIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = head
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.policy);
  __pyx_v_i->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/rbacrule.pxi":144
 *         i = RoleAllowIterator()
 *         i.policy = policy
 *         i.head = head             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->head = __pyx_v_head;

  /* "setools/policyrep/rbacrule.pxi":145
 *         i.policy = policy
 *         i.head = head
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":146
 *         i.head = head
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":139
 *         sepol.role_allow_t *curr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.role_allow_t *head):
 *         """Role allow rule iterator factory."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.RoleAllowIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":148
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_17RoleAllowIterator___next__(((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  struct role_allow *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/rbacrule.pxi":149
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (__pyx_v_self->curr == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/rbacrule.pxi":150
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = RoleAllow.factory(self.policy, self.curr)
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/rbacrule.pxi":149
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/rbacrule.pxi":152
 *             raise StopIteration
 * 
 *         item = RoleAllow.factory(self.policy, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_9RoleAllow_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_self->curr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/rbacrule.pxi":153
 * 
 *         item = RoleAllow.factory(self.policy, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
*/
  __pyx_t_4 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_4;

  /* "setools/policyrep/rbacrule.pxi":154
 *         item = RoleAllow.factory(self.policy, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_item);
  __pyx_r = ((PyObject *)__pyx_v_item);
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":148
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.RoleAllowIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":156
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.role_allow_t *curr
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_17RoleAllowIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_17RoleAllowIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_17RoleAllowIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_17RoleAllowIterator_2__len__(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self) {
  role_allow_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  role_allow_t *__pyx_t_1;
  int __pyx_t_2;
  struct role_allow *__pyx_t_3;

  /* "setools/policyrep/rbacrule.pxi":159
 *         cdef:
 *             sepol.role_allow_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/rbacrule.pxi":161
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/rbacrule.pxi":162
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_curr != NULL);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/rbacrule.pxi":163
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
*/
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/rbacrule.pxi":164
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/rbacrule.pxi":166
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":156
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.role_allow_t *curr
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":168
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_17RoleAllowIterator_4reset, "Reset the iterator back to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_17RoleAllowIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_17RoleAllowIterator_4reset};
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_17RoleAllowIterator_4reset(((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_4reset(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  role_allow_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/rbacrule.pxi":170
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/rbacrule.pxi":168
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_17RoleAllowIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_17RoleAllowIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleAllowIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_17RoleAllowIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.RoleAllowIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_17RoleAllowIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleAllowIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":181
 *         sepol.role_trans_t *curr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.role_trans_t *head):
 *         """Role transition rule iterator factory."""
*/

static PyObject *__pyx_f_7setools_9policyrep_22RoleTransitionIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_trans_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/rbacrule.pxi":184
 *     cdef factory(SELinuxPolicy policy, sepol.role_trans_t *head):
 *         """Role transition rule iterator factory."""
 *         i = RoleTransitionIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 184, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":185
 *         """Role transition rule iterator factory."""
 *         i = RoleTransitionIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = head
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.policy);
  __pyx_v_i->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/rbacrule.pxi":186
 *         i = RoleTransitionIterator()
 *         i.policy = policy
 *         i.head = head             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->head = __pyx_v_head;

  /* "setools/policyrep/rbacrule.pxi":187
 *         i.policy = policy
 *         i.head = head
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":188
 *         i.head = head
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":181
 *         sepol.role_trans_t *curr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.role_trans_t *head):
 *         """Role transition rule iterator factory."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.RoleTransitionIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":190
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_22RoleTransitionIterator___next__(((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  struct role_trans *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/rbacrule.pxi":191
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (__pyx_v_self->curr == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/rbacrule.pxi":192
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = RoleTransition.factory(self.policy, self.curr)
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/rbacrule.pxi":191
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/rbacrule.pxi":194
 *             raise StopIteration
 * 
 *         item = RoleTransition.factory(self.policy, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_14RoleTransition_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_self->curr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/rbacrule.pxi":195
 * 
 *         item = RoleTransition.factory(self.policy, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
*/
  __pyx_t_4 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_4;

  /* "setools/policyrep/rbacrule.pxi":196
 *         item = RoleTransition.factory(self.policy, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_item);
  __pyx_r = ((PyObject *)__pyx_v_item);
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":190
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.RoleTransitionIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":198
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.role_trans_t *curr
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_2__len__(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self) {
  role_trans_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  role_trans_t *__pyx_t_1;
  int __pyx_t_2;
  struct role_trans *__pyx_t_3;

  /* "setools/policyrep/rbacrule.pxi":201
 *         cdef:
 *             sepol.role_trans_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/rbacrule.pxi":203
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/rbacrule.pxi":204
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_curr != NULL);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/rbacrule.pxi":205
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
*/
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/rbacrule.pxi":206
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/rbacrule.pxi":208
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":198
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.role_trans_t *curr
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":210
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_22RoleTransitionIterator_4reset, "Reset the iterator back to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_22RoleTransitionIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_22RoleTransitionIterator_4reset};
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_4reset(((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_4reset(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  role_trans_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/rbacrule.pxi":212
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/rbacrule.pxi":210
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_22RoleTransitionIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleTransitionIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_22RoleTransitionIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.RoleTransitionIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleTransitionIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":14
 *     cdef frozenset _types
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Role factory(SELinuxPolicy policy, sepol.role_datum_t *symbol):
 *         """Factory function for creating Role objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Role *__pyx_f_7setools_9policyrep_4Role_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_Role *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/role.pxi":17
 *     cdef inline Role factory(SELinuxPolicy policy, sepol.role_datum_t *symbol):
 *         """Factory function for creating Role objects."""
 *         cdef Role r = Role.__new__(Role)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Role(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Role), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 17, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":18
 *         """Factory function for creating Role objects."""
 *         cdef Role r = Role.__new__(Role)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>symbol
 *         r.name = policy.role_value_to_name(symbol.s.value - 1)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy);
  __pyx_v_r->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/role.pxi":19
 *         cdef Role r = Role.__new__(Role)
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         r.name = policy.role_value_to_name(symbol.s.value - 1)
 *         r._types = frozenset(TypeEbitmapIterator.factory_from_set(policy, &symbol.types))
*/
  __pyx_v_r->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/role.pxi":20
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 *         r.name = policy.role_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 *         r._types = frozenset(TypeEbitmapIterator.factory_from_set(policy, &symbol.types))
 *         return r
*/
  __pyx_t_1 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.name);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.name);
  __pyx_v_r->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":21
 *         r.key = <uintptr_t>symbol
 *         r.name = policy.role_value_to_name(symbol.s.value - 1)
 *         r._types = frozenset(TypeEbitmapIterator.factory_from_set(policy, &symbol.types))             # <<<<<<<<<<<<<<
 *         return r
 * 
*/
  __pyx_t_1 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory_from_set(__pyx_v_policy, (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyFrozenSet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->_types);
  __Pyx_DECREF(__pyx_v_r->_types);
  __pyx_v_r->_types = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/role.pxi":22
 *         r.name = policy.role_value_to_name(symbol.s.value - 1)
 *         r._types = frozenset(TypeEbitmapIterator.factory_from_set(policy, &symbol.types))
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":14
 *     cdef frozenset _types
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Role factory(SELinuxPolicy policy, sepol.role_datum_t *symbol):
 *         """Factory function for creating Role objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Role.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":24
 *         return r
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def dominated_roles(self):
 *         """The roles that this role dominates."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Role_15dominated_roles_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4Role_15dominated_roles_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Role_15dominated_roles___get__(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4Role_15dominated_roles___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/role.pxi":29
 *         # TODO: do dominated roles even work?
 *         #return set(RoleEbitmapIterator.factory(self.policy, &self.handle.dominates))
 *         return frozenset()             # <<<<<<<<<<<<<<
 * 
 *     def types(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyFrozenSet_New(((PyObject *)NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":24
 *         return r
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def dominated_roles(self):
 *         """The roles that this role dominates."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Role.dominated_roles.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":31
 *         return frozenset()
 * 
 *     def types(self):             # <<<<<<<<<<<<<<
 *         """Generator which yields the role's set of types."""
 *         return iter(self._types)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Role_1types(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_4Role_types, "Generator which yields the role's set of types.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_4Role_1types = {"types", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Role_1types, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_4Role_types};
static PyObject *__pyx_pw_7setools_9policyrep_4Role_1types(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("types (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("types", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("types", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_4Role_types(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4Role_types(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("types", 0);

  /* "setools/policyrep/role.pxi":33
 *     def types(self):
 *         """Generator which yields the role's set of types."""
 *         return iter(self._types)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_types;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":31
 *         return frozenset()
 * 
 *     def types(self):             # <<<<<<<<<<<<<<
 *         """Generator which yields the role's set of types."""
 *         return iter(self._types)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Role.types", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":35
 *         return iter(self._types)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Role_3statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_4Role_3statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Role_3statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_4Role_3statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_4Role_2statement(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_4Role_9statement_2generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/role.pxi":37
 *     def statement(self):
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)             # <<<<<<<<<<<<<<
 *         count = len(types)
 *         stmt = f"role {self.name}"
*/

static PyObject *__pyx_pf_7setools_9policyrep_4Role_9statement_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_12_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 37, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_4Role_9statement_2generator20, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_statement_locals_genexpr, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(19, 37, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Role.statement.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_4Role_9statement_2generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 37, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(19, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  __pyx_t_2 = 0;
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(19, 37, __pyx_L1_error) }
  __pyx_t_5 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_genexpr_arg_0, 0, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_5;
  __pyx_t_5 = 0;
  while (1) {
    __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, __pyx_t_4);
    if (unlikely(__pyx_t_6 == 0)) break;
    if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(19, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Unicode(__pyx_cur_scope->__pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_5))) __PYX_ERR(19, 37, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":35
 *         return iter(self._types)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)
*/

static PyObject *__pyx_pf_7setools_9policyrep_4Role_2statement(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self) {
  size_t __pyx_v_count;
  PyObject *__pyx_v_types = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_stmt = NULL;
  PyObject *__pyx_gb_7setools_9policyrep_4Role_9statement_2generator20 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5[3];
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[5];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/role.pxi":37
 *     def statement(self):
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)             # <<<<<<<<<<<<<<
 *         count = len(types)
 *         stmt = f"role {self.name}"
*/
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_4Role_9statement_genexpr(NULL, __pyx_v_self->_types); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Generator_GetInlinedResult(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_types = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/role.pxi":38
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)
 *         count = len(types)             # <<<<<<<<<<<<<<
 *         stmt = f"role {self.name}"
 *         if count == 0:
*/
  if (unlikely(__pyx_v_types == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(19, 38, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_v_types); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(19, 38, __pyx_L1_error)
  __pyx_v_count = __pyx_t_3;

  /* "setools/policyrep/role.pxi":39
 *         types = list(str(t) for t in self._types)
 *         count = len(types)
 *         stmt = f"role {self.name}"             # <<<<<<<<<<<<<<
 *         if count == 0:
 *             return f"role {self.name};"
*/
  __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.name); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_role, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_stmt = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":40
 *         count = len(types)
 *         stmt = f"role {self.name}"
 *         if count == 0:             # <<<<<<<<<<<<<<
 *             return f"role {self.name};"
 *         if count == 1:
*/
  __pyx_t_4 = (__pyx_v_count == 0);
  if (__pyx_t_4) {

    /* "setools/policyrep/role.pxi":41
 *         stmt = f"role {self.name}"
 *         if count == 0:
 *             return f"role {self.name};"             # <<<<<<<<<<<<<<
 *         if count == 1:
 *             return f"role {self.name} types {types[0]};"
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_role;
    __pyx_t_5[1] = __pyx_t_1;
    __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u__2;
    __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, 5 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
    if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/role.pxi":40
 *         count = len(types)
 *         stmt = f"role {self.name}"
 *         if count == 0:             # <<<<<<<<<<<<<<
 *             return f"role {self.name};"
 *         if count == 1:
*/
  }

  /* "setools/policyrep/role.pxi":42
 *         if count == 0:
 *             return f"role {self.name};"
 *         if count == 1:             # <<<<<<<<<<<<<<
 *             return f"role {self.name} types {types[0]};"
 * 
*/
  __pyx_t_4 = (__pyx_v_count == 1);
  if (__pyx_t_4) {

    /* "setools/policyrep/role.pxi":43
 *             return f"role {self.name};"
 *         if count == 1:
 *             return f"role {self.name} types {types[0]};"             # <<<<<<<<<<<<<<
 * 
 *         return f"role {self.name} types {{ {' '.join(sorted(types))} }};"
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.name); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 43, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (unlikely(__pyx_v_types == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(19, 43, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_types, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 43, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 43, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_role;
    __pyx_t_7[1] = __pyx_t_2;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u_types_2;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_7[4] = __pyx_mstate_global->__pyx_kp_u__2;
    __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_7, 5, 5 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 7 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 43, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/role.pxi":42
 *         if count == 0:
 *             return f"role {self.name};"
 *         if count == 1:             # <<<<<<<<<<<<<<
 *             return f"role {self.name} types {types[0]};"
 * 
*/
  }

  /* "setools/policyrep/role.pxi":45
 *             return f"role {self.name} types {types[0]};"
 * 
 *         return f"role {self.name} types {{ {' '.join(sorted(types))} }};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PySequence_List(__pyx_v_types); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely((PyList_Sort(__pyx_t_6) < 0))) __PYX_ERR(19, 45, __pyx_L1_error)
  __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_role;
  __pyx_t_7[1] = __pyx_t_1;
  __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u_types_3;
  __pyx_t_7[3] = __pyx_t_2;
  __pyx_t_7[4] = __pyx_mstate_global->__pyx_kp_u__31;
  __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_7, 5, 5 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 9 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 3, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":35
 *         return iter(self._types)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Role.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_types);
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_4Role_9statement_2generator20);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Role_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_4Role_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Role_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_4Role_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_4Role_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4Role_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._types, self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_types);
  __Pyx_GIVEREF(__pyx_v_self->_types);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_types) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->__pyx_base.name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Role, (type(self), 0x22ceaf7, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_types != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Role, (type(self), 0x22ceaf7, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Role, (type(self), 0x22ceaf7, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Role, (type(self), 0x22ceaf7, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Role); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_36498167);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_36498167);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_36498167) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Role, (type(self), 0x22ceaf7, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Role, (type(self), 0x22ceaf7, None), state
 *     else:
 *         return __pyx_unpickle_Role, (type(self), 0x22ceaf7, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Role__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Role); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_36498167);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_36498167);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_36498167) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Role.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Role, (type(self), 0x22ceaf7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Role__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Role_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_4Role_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Role_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_4Role_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Role.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_4Role_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4Role_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Role, (type(self), 0x22ceaf7, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Role__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Role__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Role, (type(self), 0x22ceaf7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Role__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Role.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":55
 *     """Iterate over roles in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_19RoleHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/role.pxi":58
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
 *         i = RoleHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 58, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":59
 *         """Factory function for creating Role iterators."""
 *         i = RoleHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/role.pxi":60
 *         i = RoleHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/role.pxi":61
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":62
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":55
 *     """Iterate over roles in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.RoleHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":64
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Role.factory(self.policy, <sepol.role_datum_t *>self.curr.datum)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/role.pxi":65
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Role.factory(self.policy, <sepol.role_datum_t *>self.curr.datum)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":66
 *     def __next__(self):
 *         super().__next__()
 *         return Role.factory(self.policy, <sepol.role_datum_t *>self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((role_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":64
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Role.factory(self.policy, <sepol.role_datum_t *>self.curr.datum)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.RoleHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19RoleHashtabIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleHashtabIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19RoleHashtabIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.RoleHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleHashtabIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":73
 *     """Iterate over a role ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating Role ebitmap iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_19RoleEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap) {
  struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/role.pxi":76
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating Role ebitmap iterators."""
 *         i = RoleEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = bmap
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 76, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":77
 *         """Factory function for creating Role ebitmap iterators."""
 *         i = RoleEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = bmap
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/role.pxi":78
 *         i = RoleEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = bmap             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.bmap = __pyx_v_bmap;

  /* "setools/policyrep/role.pxi":79
 *         i.policy = policy
 *         i.bmap = bmap
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":80
 *         i.bmap = bmap
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":73
 *     """Iterate over a role ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating Role ebitmap iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.RoleEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":82
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Role.factory(self.policy, self.policy.role_value_to_datum(self.bit))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  role_datum_t *__pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/role.pxi":83
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Role.factory(self.policy, self.policy.role_value_to_datum(self.bit))
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":84
 *     def __next__(self):
 *         super().__next__()
 *         return Role.factory(self.policy, self.policy.role_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_6 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 84, __pyx_L1_error)
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_t_6)); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":82
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Role.factory(self.policy, self.policy.role_value_to_datum(self.bit))
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.RoleEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19RoleEbitmapIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19RoleEbitmapIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.RoleEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":19
 *         readonly bint extended
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def conditional(self):
 *         """The conditional expression for this rule."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_11conditional_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_11conditional_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_11conditional___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_11conditional___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rule.pxi":23
 *         """The conditional expression for this rule."""
 *         # Most rule types cannot be conditional.
 *         raise RuleNotConditional             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_RuleNotConditional); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(20, 23, __pyx_L1_error)

  /* "setools/policyrep/rule.pxi":19
 *         readonly bint extended
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def conditional(self):
 *         """The conditional expression for this rule."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.conditional.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":25
 *         raise RuleNotConditional
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def conditional_block(self):
 *         """The conditional block of the rule (T/F)"""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_17conditional_block_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_17conditional_block_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_17conditional_block___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_17conditional_block___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rule.pxi":29
 *         """The conditional block of the rule (T/F)"""
 *         # Most rule types cannot be conditional.
 *         raise RuleNotConditional             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_RuleNotConditional); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(20, 29, __pyx_L1_error)

  /* "setools/policyrep/rule.pxi":25
 *         raise RuleNotConditional
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def conditional_block(self):
 *         """The conditional block of the rule (T/F)"""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.conditional_block.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":31
 *         raise RuleNotConditional
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_7default_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_7default___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_7default___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rule.pxi":34
 *     def default(self):
 *         """The rule's default."""
 *         raise RuleUseError             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(20, 34, __pyx_L1_error)

  /* "setools/policyrep/rule.pxi":31
 *         raise RuleNotConditional
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.default.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":36
 *         raise RuleUseError
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def filename(self):
 *         """The filename for this rule."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_8filename_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_8filename_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_8filename___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_8filename___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rule.pxi":40
 *         """The filename for this rule."""
 *         # Most rule types do not have filenames.
 *         raise RuleUseError             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(20, 40, __pyx_L1_error)

  /* "setools/policyrep/rule.pxi":36
 *         raise RuleUseError
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def filename(self):
 *         """The filename for this rule."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.filename.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":42
 *         raise RuleUseError
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def perms(self):
 *         """The permissions for this rule."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_5perms_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_5perms___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_5perms___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rule.pxi":45
 *     def perms(self):
 *         """The permissions for this rule."""
 *         raise RuleUseError             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(20, 45, __pyx_L1_error)

  /* "setools/policyrep/rule.pxi":42
 *         raise RuleUseError
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def perms(self):
 *         """The permissions for this rule."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.perms.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":47
 *         raise RuleUseError
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def tclass(self):
 *         """The rule's object class."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6tclass_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6tclass___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rule.pxi":50
 *     def tclass(self):
 *         """The rule's object class."""
 *         raise RuleUseError             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(20, 50, __pyx_L1_error)

  /* "setools/policyrep/rule.pxi":47
 *         raise RuleUseError
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def tclass(self):
 *         """The rule's object class."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.tclass.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":52
 *         raise RuleUseError
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xperm_type(self):
 *         """The extended permission type for this rule."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_10xperm_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_10xperm_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_10xperm_type___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_10xperm_type___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rule.pxi":56
 *         """The extended permission type for this rule."""
 *         # Most rule types are not extended.
 *         raise RuleUseError             # <<<<<<<<<<<<<<
 * 
 *     def enabled(self, **kwargs):
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(20, 56, __pyx_L1_error)

  /* "setools/policyrep/rule.pxi":52
 *         raise RuleUseError
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xperm_type(self):
 *         """The extended permission type for this rule."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.xperm_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":58
 *         raise RuleUseError
 * 
 *     def enabled(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Determine if the rule is enabled, given the stated boolean values.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_1enabled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_10PolicyRule_enabled, "\n        Determine if the rule is enabled, given the stated boolean values.\n\n        Keyword Parameters: bool_name=True|False\n        Each keyword parameter name corresponds to a Boolean name\n        in the expression and the state to use in the evaluation.\n        If a Boolean value is not set, its default value is used.\n        Extra values are ignored.\n\n        Return:     bool\n        ");
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyRule_1enabled = {"enabled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyRule_1enabled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_10PolicyRule_enabled};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_1enabled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enabled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("enabled", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (__pyx_kwds_len > 0) {
    if (unlikely(__Pyx_CheckKeywordStrings("enabled", __pyx_kwds) == -1)) return NULL;
  }
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_enabled(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self), __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_enabled(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enabled", 0);

  /* "setools/policyrep/rule.pxi":71
 *         """
 *         # Most rule types cannot be conditional, thus are always enabled.
 *         return True             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_True);
  __pyx_r = Py_True;
  goto __pyx_L0;

  /* "setools/policyrep/rule.pxi":58
 *         raise RuleUseError
 * 
 *     def enabled(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Determine if the rule is enabled, given the stated boolean values.
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":73
 *         return True
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         raise NotImplementedError
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_3expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_10PolicyRule_2expand, "Expand the rule into an equivalent set of rules without attributes.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyRule_3expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyRule_3expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_10PolicyRule_2expand};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_3expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_2expand(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_2expand(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);

  /* "setools/policyrep/rule.pxi":75
 *     def expand(self):
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_NotImplementedError))), 0, 0, 0);
  __PYX_ERR(20, 75, __pyx_L1_error)

  /* "setools/policyrep/rule.pxi":73
 *         return True
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         raise NotImplementedError
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":12
 * 
 *     cdef:
 *         readonly object ruletype             # <<<<<<<<<<<<<<
 *         readonly object source
 *         readonly object target
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_8ruletype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_8ruletype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_8ruletype___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __pyx_r = __pyx_v_self->ruletype;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":13
 *     cdef:
 *         readonly object ruletype
 *         readonly object source             # <<<<<<<<<<<<<<
 *         readonly object target
 *         readonly object origin
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6source_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6source_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_6source___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6source___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->source);
  __pyx_r = __pyx_v_self->source;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":14
 *         readonly object ruletype
 *         readonly object source
 *         readonly object target             # <<<<<<<<<<<<<<
 *         readonly object origin
 *         # This is initialized to False:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6target_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6target_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_6target___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6target___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->target);
  __pyx_r = __pyx_v_self->target;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":15
 *         readonly object source
 *         readonly object target
 *         readonly object origin             # <<<<<<<<<<<<<<
 *         # This is initialized to False:
 *         readonly bint extended
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6origin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6origin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_6origin___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6origin___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->origin);
  __pyx_r = __pyx_v_self->origin;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":17
 *         readonly object origin
 *         # This is initialized to False:
 *         readonly bint extended             # <<<<<<<<<<<<<<
 * 
 *     @property
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_8extended_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_8extended_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_8extended___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_8extended___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->extended); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.extended.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyRule_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyRule_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->extended); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->origin);
  __Pyx_GIVEREF(__pyx_v_self->origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->origin) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_self->__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __Pyx_GIVEREF(__pyx_v_self->ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->source);
  __Pyx_GIVEREF(__pyx_v_self->source);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_self->source) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->target);
  __Pyx_GIVEREF(__pyx_v_self->target);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->target) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0x9f93d87, None), state
*/
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->origin != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->ruletype != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->source != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->target != Py_None);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyRule, (type(self), 0x9f93d87, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0x9f93d87, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0x9f93d87, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyRule); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_167329159);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_167329159);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_167329159) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyRule, (type(self), 0x9f93d87, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PolicyRule, (type(self), 0x9f93d87, None), state
 *     else:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0x9f93d87, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyRule__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyRule); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_167329159);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_167329159);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_167329159) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0x9f93d87, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyRule__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyRule_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyRule_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PolicyRule, (type(self), 0x9f93d87, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyRule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyRule__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0x9f93d87, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyRule__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":47
 *         readonly bint mls
 * 
 *     def __cinit__(self, policyfile=None):             # <<<<<<<<<<<<<<
 *         """
 *         Parameter:
*/

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_13SELinuxPolicy_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_7setools_9policyrep_13SELinuxPolicy_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_policyfile = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_policyfile,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 47, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 47, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < (0)) __PYX_ERR(5, 47, __pyx_L3_error)
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    } else {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 47, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_policyfile = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, __pyx_nargs); __PYX_ERR(5, 47, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy___cinit__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_policyfile);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7setools_9policyrep_13SELinuxPolicy___cinit__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_policyfile) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":52
 *         policyfile  Path to a policy to open.
 *         """
 *         self.sh = NULL             # <<<<<<<<<<<<<<
 *         self.handle = NULL
 *         self.cat_val_to_struct = NULL
*/
  __pyx_v_self->sh = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":53
 *         """
 *         self.sh = NULL
 *         self.handle = NULL             # <<<<<<<<<<<<<<
 *         self.cat_val_to_struct = NULL
 *         self.level_val_to_struct = NULL
*/
  __pyx_v_self->handle = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":54
 *         self.sh = NULL
 *         self.handle = NULL
 *         self.cat_val_to_struct = NULL             # <<<<<<<<<<<<<<
 *         self.level_val_to_struct = NULL
 *         self.log = logging.getLogger(__name__)
*/
  __pyx_v_self->cat_val_to_struct = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":55
 *         self.handle = NULL
 *         self.cat_val_to_struct = NULL
 *         self.level_val_to_struct = NULL             # <<<<<<<<<<<<<<
 *         self.log = logging.getLogger(__name__)
 * 
*/
  __pyx_v_self->level_val_to_struct = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":56
 *         self.cat_val_to_struct = NULL
 *         self.level_val_to_struct = NULL
 *         self.log = logging.getLogger(__name__)             # <<<<<<<<<<<<<<
 * 
 *         if policyfile:
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_logging); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_getLogger); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->log);
  __Pyx_DECREF(__pyx_v_self->log);
  __pyx_v_self->log = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":58
 *         self.log = logging.getLogger(__name__)
 * 
 *         if policyfile:             # <<<<<<<<<<<<<<
 *             self._load_policy(policyfile)
 *         else:
*/
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_policyfile); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(5, 58, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "setools/policyrep/selinuxpolicy.pxi":59
 * 
 *         if policyfile:
 *             self._load_policy(policyfile)             # <<<<<<<<<<<<<<
 *         else:
 *             self._load_running_policy()
*/
    __pyx_t_1 = __pyx_v_policyfile;
    __Pyx_INCREF(__pyx_t_1);
    if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(5, 59, __pyx_L1_error)
    __pyx_t_4 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_policy(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":58
 *         self.log = logging.getLogger(__name__)
 * 
 *         if policyfile:             # <<<<<<<<<<<<<<
 *             self._load_policy(policyfile)
 *         else:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/selinuxpolicy.pxi":61
 *             self._load_policy(policyfile)
 *         else:
 *             self._load_running_policy()             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
*/
  /*else*/ {
    __pyx_t_4 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_running_policy(__pyx_v_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_L3:;

  /* "setools/policyrep/selinuxpolicy.pxi":47
 *         readonly bint mls
 * 
 *     def __cinit__(self, policyfile=None):             # <<<<<<<<<<<<<<
 *         """
 *         Parameter:
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":63
 *             self._load_running_policy()
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         PyMem_Free(self.cat_val_to_struct)
 *         PyMem_Free(self.level_val_to_struct)
*/

/* Python wrapper */
static void __pyx_pw_7setools_9policyrep_13SELinuxPolicy_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_7setools_9policyrep_13SELinuxPolicy_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_7setools_9policyrep_13SELinuxPolicy_2__dealloc__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_7setools_9policyrep_13SELinuxPolicy_2__dealloc__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  int __pyx_t_1;

  /* "setools/policyrep/selinuxpolicy.pxi":64
 * 
 *     def __dealloc__(self):
 *         PyMem_Free(self.cat_val_to_struct)             # <<<<<<<<<<<<<<
 *         PyMem_Free(self.level_val_to_struct)
 * 
*/
  PyMem_Free(__pyx_v_self->cat_val_to_struct);

  /* "setools/policyrep/selinuxpolicy.pxi":65
 *     def __dealloc__(self):
 *         PyMem_Free(self.cat_val_to_struct)
 *         PyMem_Free(self.level_val_to_struct)             # <<<<<<<<<<<<<<
 * 
 *         if self.handle != NULL:
*/
  PyMem_Free(__pyx_v_self->level_val_to_struct);

  /* "setools/policyrep/selinuxpolicy.pxi":67
 *         PyMem_Free(self.level_val_to_struct)
 * 
 *         if self.handle != NULL:             # <<<<<<<<<<<<<<
 *             sepol.sepol_policydb_free(self.handle)
 * 
*/
  __pyx_t_1 = (__pyx_v_self->handle != NULL);
  if (__pyx_t_1) {

    /* "setools/policyrep/selinuxpolicy.pxi":68
 * 
 *         if self.handle != NULL:
 *             sepol.sepol_policydb_free(self.handle)             # <<<<<<<<<<<<<<
 * 
 *         if self.sh != NULL:
*/
    sepol_policydb_free(__pyx_v_self->handle);

    /* "setools/policyrep/selinuxpolicy.pxi":67
 *         PyMem_Free(self.level_val_to_struct)
 * 
 *         if self.handle != NULL:             # <<<<<<<<<<<<<<
 *             sepol.sepol_policydb_free(self.handle)
 * 
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":70
 *             sepol.sepol_policydb_free(self.handle)
 * 
 *         if self.sh != NULL:             # <<<<<<<<<<<<<<
 *             sepol.sepol_handle_destroy(self.sh)
 * 
*/
  __pyx_t_1 = (__pyx_v_self->sh != NULL);
  if (__pyx_t_1) {

    /* "setools/policyrep/selinuxpolicy.pxi":71
 * 
 *         if self.sh != NULL:
 *             sepol.sepol_handle_destroy(self.sh)             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
    sepol_handle_destroy(__pyx_v_self->sh);

    /* "setools/policyrep/selinuxpolicy.pxi":70
 *             sepol.sepol_policydb_free(self.handle)
 * 
 *         if self.sh != NULL:             # <<<<<<<<<<<<<<
 *             sepol.sepol_handle_destroy(self.sh)
 * 
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":63
 *             self._load_running_policy()
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         PyMem_Free(self.cat_val_to_struct)
 *         PyMem_Free(self.level_val_to_struct)
*/

  /* function exit code */
}

/* "setools/policyrep/selinuxpolicy.pxi":73
 *             sepol.sepol_handle_destroy(self.sh)
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"<SELinuxPolicy(\"{self.path}\")>"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_5__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_4__repr__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_4__repr__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2[3];
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":74
 * 
 *     def __repr__(self):
 *         return f"<SELinuxPolicy(\"{self.path}\")>"             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->path); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2[0] = __pyx_mstate_global->__pyx_kp_u_SELinuxPolicy;
  __pyx_t_2[1] = __pyx_t_1;
  __pyx_t_2[2] = __pyx_mstate_global->__pyx_kp_u__30;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, 16 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 3, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":73
 *             sepol.sepol_handle_destroy(self.sh)
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"<SELinuxPolicy(\"{self.path}\")>"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":76
 *         return f"<SELinuxPolicy(\"{self.path}\")>"
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.path
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_7__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_7__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_6__str__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_6__str__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":77
 * 
 *     def __str__(self):
 *         return self.path             # <<<<<<<<<<<<<<
 * 
 *     def __copy__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->path);
  __pyx_r = __pyx_v_self->path;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":76
 *         return f"<SELinuxPolicy(\"{self.path}\")>"
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.path
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":79
 *         return self.path
 * 
 *     def __copy__(self):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         return self
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_9__copy__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_9__copy__ = {"__copy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_9__copy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_9__copy__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__copy__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__copy__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__copy__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_8__copy__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_8__copy__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__copy__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":81
 *     def __copy__(self):
 *         # Do not copy.
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __deepcopy__(self, memo):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":79
 *         return self.path
 * 
 *     def __copy__(self):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         return self
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":83
 *         return self
 * 
 *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         memo[id(self)] = self
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11__deepcopy__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_11__deepcopy__ = {"__deepcopy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11__deepcopy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11__deepcopy__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_memo = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__deepcopy__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_memo,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 83, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 83, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__deepcopy__", 0) < (0)) __PYX_ERR(5, 83, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 1, 1, i); __PYX_ERR(5, 83, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 83, __pyx_L3_error)
    }
    __pyx_v_memo = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 83, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_10__deepcopy__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_memo);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10__deepcopy__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_memo) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__deepcopy__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":85
 *     def __deepcopy__(self, memo):
 *         # Do not copy.
 *         memo[id(self)] = self             # <<<<<<<<<<<<<<
 *         return self
 * 
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_self)};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_id, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (unlikely((PyObject_SetItem(__pyx_v_memo, __pyx_t_1, ((PyObject *)__pyx_v_self)) < 0))) __PYX_ERR(5, 85, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":86
 *         # Do not copy.
 *         memo[id(self)] = self
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     #
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":83
 *         return self
 * 
 *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         memo[id(self)] = self
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":91
 *     # Policy statistics
 *     #
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_count(self):
 *         """The number of (type) allow rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11allow_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11allow_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_11allow_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11allow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":94
 *     def allow_count(self):
 *         """The number of (type) allow rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.allow.value]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":95
 *         """The number of (type) allow rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.allow.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_allow); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":91
 *     # Policy statistics
 *     #
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_count(self):
 *         """The number of (type) allow rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.allow_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":97
 *         return self.terule_counts[TERuletype.allow.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allowxperm_count(self):
 *         """The number of allowxperm rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":100
 *     def allowxperm_count(self):
 *         """The number of allowxperm rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.allowxperm.value]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":101
 *         """The number of allowxperm rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.allowxperm.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_allowxperm); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":97
 *         return self.terule_counts[TERuletype.allow.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allowxperm_count(self):
 *         """The number of allowxperm rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.allowxperm_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":103
 *         return self.terule_counts[TERuletype.allowxperm.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def auditallow_count(self):
 *         """The number of auditallow rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16auditallow_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16auditallow_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16auditallow_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16auditallow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":106
 *     def auditallow_count(self):
 *         """The number of auditallow rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.auditallow.value]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":107
 *         """The number of auditallow rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.auditallow.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_auditallow); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":103
 *         return self.terule_counts[TERuletype.allowxperm.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def auditallow_count(self):
 *         """The number of auditallow rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.auditallow_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":109
 *         return self.terule_counts[TERuletype.auditallow.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def auditallowxperm_count(self):
 *         """The number of auditallowxperm rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":112
 *     def auditallowxperm_count(self):
 *         """The number of auditallowxperm rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.auditallowxperm.value]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":113
 *         """The number of auditallowxperm rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.auditallowxperm.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_auditallowxperm); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":109
 *         return self.terule_counts[TERuletype.auditallow.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def auditallowxperm_count(self):
 *         """The number of auditallowxperm rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.auditallowxperm_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":115
 *         return self.terule_counts[TERuletype.auditallowxperm.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def boolean_count(self):
 *         """The number of Booleans."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13boolean_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13boolean_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13boolean_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13boolean_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":118
 *     def boolean_count(self):
 *         """The number of Booleans."""
 *         return len(self.bools())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_bools, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":115
 *         return self.terule_counts[TERuletype.auditallowxperm.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def boolean_count(self):
 *         """The number of Booleans."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.boolean_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":120
 *         return len(self.bools())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def category_count(self):
 *         """The number of categories."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14category_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14category_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___2generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":123
 *     def category_count(self):
 *         """The number of categories."""
 *         return sum(1 for _ in self.categories())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_13_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 123, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___2generator21, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy___get___locals_gen, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 123, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.category_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___2generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(5, 123, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(5, 123, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 123, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 123, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 123, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 123, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 123, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1);
    __pyx_r = __pyx_mstate_global->__pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 123, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":120
 *         return len(self.bools())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def category_count(self):
 *         """The number of categories."""
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___2generator21 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":123
 *     def category_count(self):
 *         """The number of categories."""
 *         return sum(1 for _ in self.categories())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __pyx_t_4 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_categories, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_4 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___genexpr(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_sum, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":120
 *         return len(self.bools())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def category_count(self):
 *         """The number of categories."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.category_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___2generator21);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":125
 *         return sum(1 for _ in self.categories())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def class_count(self):
 *         """The number of object classes."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11class_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11class_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_11class_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11class_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":128
 *     def class_count(self):
 *         """The number of object classes."""
 *         return len(self.classes())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_classes, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 128, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":125
 *         return sum(1 for _ in self.categories())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def class_count(self):
 *         """The number of object classes."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.class_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":130
 *         return len(self.classes())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def common_count(self):
 *         """The number of common permission sets."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12common_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12common_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_12common_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12common_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":133
 *     def common_count(self):
 *         """The number of common permission sets."""
 *         return len(self.commons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_commons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 133, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":130
 *         return len(self.classes())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def common_count(self):
 *         """The number of common permission sets."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.common_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":135
 *         return len(self.commons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def conditional_count(self):
 *         """The number of conditionals."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17conditional_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17conditional_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17conditional_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17conditional_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":138
 *     def conditional_count(self):
 *         """The number of conditionals."""
 *         return len(self.conditionals())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_conditionals, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 138, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 138, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":135
 *         return len(self.commons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def conditional_count(self):
 *         """The number of conditionals."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.conditional_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":140
 *         return len(self.conditionals())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def constraint_count(self):
 *         """The number of standard constraints."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16constraint_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16constraint_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16constraint_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16constraint_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":143
 *     def constraint_count(self):
 *         """The number of standard constraints."""
 *         self._cache_constraint_counts()             # <<<<<<<<<<<<<<
 *         return self.constraint_counts[ConstraintRuletype.constrain]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_constraint_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":144
 *         """The number of standard constraints."""
 *         self._cache_constraint_counts()
 *         return self.constraint_counts[ConstraintRuletype.constrain]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_constrain); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->constraint_counts, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":140
 *         return len(self.conditionals())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def constraint_count(self):
 *         """The number of standard constraints."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.constraint_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":146
 *         return self.constraint_counts[ConstraintRuletype.constrain]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default_count(self):
 *         """The number of default_* rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13default_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13default_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___2generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":149
 *     def default_count(self):
 *         """The number of default_* rules."""
 *         return sum(1 for d in self.defaults())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_14_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 149, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___2generator22, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy___get___locals_gen, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 149, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.default_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___2generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(5, 149, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(5, 149, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 149, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 149, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 149, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 149, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 149, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_d);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_d, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1);
    __pyx_r = __pyx_mstate_global->__pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 149, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":146
 *         return self.constraint_counts[ConstraintRuletype.constrain]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default_count(self):
 *         """The number of default_* rules."""
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___2generator22 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":149
 *     def default_count(self):
 *         """The number of default_* rules."""
 *         return sum(1 for d in self.defaults())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __pyx_t_4 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_defaults, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_4 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___genexpr(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_sum, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":146
 *         return self.constraint_counts[ConstraintRuletype.constrain]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default_count(self):
 *         """The number of default_* rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.default_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___2generator22);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":151
 *         return sum(1 for d in self.defaults())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def devicetreecon_count(self):
 *         """The number of Xen devicetreecon statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":154
 *     def devicetreecon_count(self):
 *         """The number of Xen devicetreecon statements."""
 *         return len(self.devicetreecons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_devicetreecons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 154, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":151
 *         return sum(1 for d in self.defaults())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def devicetreecon_count(self):
 *         """The number of Xen devicetreecon statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.devicetreecon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":156
 *         return len(self.devicetreecons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def dontaudit_count(self):
 *         """The number of dontaudit rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":159
 *     def dontaudit_count(self):
 *         """The number of dontaudit rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.dontaudit.value]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":160
 *         """The number of dontaudit rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.dontaudit.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_dontaudit); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":156
 *         return len(self.devicetreecons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def dontaudit_count(self):
 *         """The number of dontaudit rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.dontaudit_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":162
 *         return self.terule_counts[TERuletype.dontaudit.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def dontauditxperm_count(self):
 *         """The number of dontauditxperm rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":165
 *     def dontauditxperm_count(self):
 *         """The number of dontauditxperm rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.dontauditxperm.value]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":166
 *         """The number of dontauditxperm rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.dontauditxperm.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_dontauditxperm); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":162
 *         return self.terule_counts[TERuletype.dontaudit.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def dontauditxperm_count(self):
 *         """The number of dontauditxperm rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.dontauditxperm_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":168
 *         return self.terule_counts[TERuletype.dontauditxperm.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def fs_use_count(self):
 *         """The number of fs_use_* statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12fs_use_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12fs_use_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_12fs_use_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12fs_use_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":171
 *     def fs_use_count(self):
 *         """The number of fs_use_* statements."""
 *         return len(self.fs_uses())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_fs_uses, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":168
 *         return self.terule_counts[TERuletype.dontauditxperm.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def fs_use_count(self):
 *         """The number of fs_use_* statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.fs_use_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":173
 *         return len(self.fs_uses())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def genfscon_count(self):
 *         """The number of genfscon statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14genfscon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14genfscon_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14genfscon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14genfscon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":176
 *     def genfscon_count(self):
 *         """The number of genfscon statements."""
 *         return len(self.genfscons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_genfscons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 176, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":173
 *         return len(self.fs_uses())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def genfscon_count(self):
 *         """The number of genfscon statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.genfscon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":178
 *         return len(self.genfscons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def ibendportcon_count(self):
 *         """The number of ibendportcon statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":181
 *     def ibendportcon_count(self):
 *         """The number of ibendportcon statements."""
 *         return len(self.ibendportcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_ibendportcons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 181, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":178
 *         return len(self.genfscons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def ibendportcon_count(self):
 *         """The number of ibendportcon statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ibendportcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":183
 *         return len(self.ibendportcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def ibpkeycon_count(self):
 *         """The number of ibpkeycon statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":186
 *     def ibpkeycon_count(self):
 *         """The number of ibpkeycon statements."""
 *         return len(self.ibpkeycons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_ibpkeycons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 186, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 186, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":183
 *         return len(self.ibendportcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def ibpkeycon_count(self):
 *         """The number of ibpkeycon statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ibpkeycon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":188
 *         return len(self.ibpkeycons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def initialsids_count(self):
 *         """The number of initial sid statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17initialsids_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17initialsids_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17initialsids_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17initialsids_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":191
 *     def initialsids_count(self):
 *         """The number of initial sid statements."""
 *         return len(self.initialsids())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_initialsids, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 191, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":188
 *         return len(self.ibpkeycons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def initialsids_count(self):
 *         """The number of initial sid statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.initialsids_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":193
 *         return len(self.initialsids())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def iomemcon_count(self):
 *         """The number of Xen iomemcon statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":196
 *     def iomemcon_count(self):
 *         """The number of Xen iomemcon statements."""
 *         return len(self.iomemcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_iomemcons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 196, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":193
 *         return len(self.initialsids())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def iomemcon_count(self):
 *         """The number of Xen iomemcon statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.iomemcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":198
 *         return len(self.iomemcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def ioportcon_count(self):
 *         """The number of Xen ioportcon statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":201
 *     def ioportcon_count(self):
 *         """The number of Xen ioportcon statements."""
 *         return len(self.ioportcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_ioportcons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":198
 *         return len(self.iomemcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def ioportcon_count(self):
 *         """The number of Xen ioportcon statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ioportcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":203
 *         return len(self.ioportcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def level_count(self):
 *         """The number of levels."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11level_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11level_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___2generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":206
 *     def level_count(self):
 *         """The number of levels."""
 *         return sum(1 for _ in self.levels())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_15_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 206, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___2generator23, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy___get___locals_gen, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 206, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.level_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___2generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(5, 206, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(5, 206, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 206, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 206, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 206, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 206, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 206, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1);
    __pyx_r = __pyx_mstate_global->__pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 206, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":203
 *         return len(self.ioportcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def level_count(self):
 *         """The number of levels."""
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___2generator23 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":206
 *     def level_count(self):
 *         """The number of levels."""
 *         return sum(1 for _ in self.levels())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __pyx_t_4 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_levels, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_4 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___genexpr(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_sum, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":203
 *         return len(self.ioportcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def level_count(self):
 *         """The number of levels."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.level_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___2generator23);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":208
 *         return sum(1 for _ in self.levels())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mlsconstraint_count(self):
 *         """The number of MLS constraints."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":211
 *     def mlsconstraint_count(self):
 *         """The number of MLS constraints."""
 *         self._cache_constraint_counts()             # <<<<<<<<<<<<<<
 *         return self.constraint_counts[ConstraintRuletype.mlsconstrain]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_constraint_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":212
 *         """The number of MLS constraints."""
 *         self._cache_constraint_counts()
 *         return self.constraint_counts[ConstraintRuletype.mlsconstrain]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_mlsconstrain); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->constraint_counts, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":208
 *         return sum(1 for _ in self.levels())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mlsconstraint_count(self):
 *         """The number of MLS constraints."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.mlsconstraint_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":214
 *         return self.constraint_counts[ConstraintRuletype.mlsconstrain]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mlsvalidatetrans_count(self):
 *         """The number of MLS validatetrans."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":217
 *     def mlsvalidatetrans_count(self):
 *         """The number of MLS validatetrans."""
 *         self._cache_constraint_counts()             # <<<<<<<<<<<<<<
 *         return self.constraint_counts[ConstraintRuletype.mlsvalidatetrans]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_constraint_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":218
 *         """The number of MLS validatetrans."""
 *         self._cache_constraint_counts()
 *         return self.constraint_counts[ConstraintRuletype.mlsvalidatetrans]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_mlsvalidatetrans); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->constraint_counts, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":214
 *         return self.constraint_counts[ConstraintRuletype.mlsconstrain]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mlsvalidatetrans_count(self):
 *         """The number of MLS validatetrans."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.mlsvalidatetrans_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":220
 *         return self.constraint_counts[ConstraintRuletype.mlsvalidatetrans]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def netifcon_count(self):
 *         """The number of netifcon statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14netifcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14netifcon_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14netifcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14netifcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":223
 *     def netifcon_count(self):
 *         """The number of netifcon statements."""
 *         return len(self.netifcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_netifcons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 223, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":220
 *         return self.constraint_counts[ConstraintRuletype.mlsvalidatetrans]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def netifcon_count(self):
 *         """The number of netifcon statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.netifcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":225
 *         return len(self.netifcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def neverallow_count(self):
 *         """The number of neverallow rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16neverallow_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16neverallow_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16neverallow_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16neverallow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":228
 *     def neverallow_count(self):
 *         """The number of neverallow rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.neverallow.value]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":229
 *         """The number of neverallow rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.neverallow.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_neverallow); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":225
 *         return len(self.netifcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def neverallow_count(self):
 *         """The number of neverallow rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.neverallow_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":231
 *         return self.terule_counts[TERuletype.neverallow.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def neverallowxperm_count(self):
 *         """The number of neverallowxperm rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":234
 *     def neverallowxperm_count(self):
 *         """The number of neverallowxperm rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.neverallowxperm.value]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":235
 *         """The number of neverallowxperm rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.neverallowxperm.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_neverallowxperm); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":231
 *         return self.terule_counts[TERuletype.neverallow.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def neverallowxperm_count(self):
 *         """The number of neverallowxperm rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.neverallowxperm_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":237
 *         return self.terule_counts[TERuletype.neverallowxperm.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nodecon_count(self):
 *         """The number of nodecon statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___2generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":240
 *     def nodecon_count(self):
 *         """The number of nodecon statements."""
 *         return sum(1 for n in self.nodecons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_16_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 240, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___2generator24, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy___get___locals_gen, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 240, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.nodecon_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___2generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(5, 240, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(5, 240, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 240, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 240, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 240, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 240, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 240, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_n);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_n, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1);
    __pyx_r = __pyx_mstate_global->__pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 240, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":237
 *         return self.terule_counts[TERuletype.neverallowxperm.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nodecon_count(self):
 *         """The number of nodecon statements."""
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___2generator24 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":240
 *     def nodecon_count(self):
 *         """The number of nodecon statements."""
 *         return sum(1 for n in self.nodecons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __pyx_t_4 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_nodecons, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_4 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___genexpr(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_sum, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":237
 *         return self.terule_counts[TERuletype.neverallowxperm.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nodecon_count(self):
 *         """The number of nodecon statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.nodecon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___2generator24);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":242
 *         return sum(1 for n in self.nodecons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def pcidevicecon_count(self):
 *         """The number of Xen pcidevicecon statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":245
 *     def pcidevicecon_count(self):
 *         """The number of Xen pcidevicecon statements."""
 *         return len(self.pcidevicecons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pcidevicecons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 245, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":242
 *         return sum(1 for n in self.nodecons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def pcidevicecon_count(self):
 *         """The number of Xen pcidevicecon statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.pcidevicecon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":247
 *         return len(self.pcidevicecons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def permission_count(self):
 *         """The number of permissions."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16permission_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16permission_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___2generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":250
 *     def permission_count(self):
 *         """The number of permissions."""
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))             # <<<<<<<<<<<<<<
 * 
 *     @property
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_17_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 250, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___2generator25, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy___get___locals_gen, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 250, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.permission_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___2generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(5, 250, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(5, 250, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 250, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 250, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 250, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 250, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 250, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_c, __pyx_mstate_global->__pyx_n_u_perms); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(5, 250, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyLong_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 250, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":247
 *         return len(self.pcidevicecons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def permission_count(self):
 *         """The number of permissions."""
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___2generator25 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":250
 *     def permission_count(self):
 *         """The number of permissions."""
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_chain); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_7);
  __pyx_t_8 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
    __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_commons, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
  }
  __pyx_t_9 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_9);
  __pyx_t_8 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL};
    __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_classes, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  __pyx_t_8 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
    __pyx_t_8 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_t_7};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_6 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___genexpr(NULL, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_8 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_sum, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":247
 *         return len(self.pcidevicecons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def permission_count(self):
 *         """The number of permissions."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.permission_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___2generator25);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":252
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def permissives_count(self):
 *         """The number of permissive types."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17permissives_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17permissives_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___2generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":255
 *     def permissives_count(self):
 *         """The number of permissive types."""
 *         return sum(1 for t in self.types() if t.ispermissive)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_18_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 255, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___2generator26, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy___get___locals_gen, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 255, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.permissives_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___2generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L7_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(5, 255, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(5, 255, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 255, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 255, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 255, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 255, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 255, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_t, __pyx_mstate_global->__pyx_n_u_ispermissive); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(5, 255, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_5) {
      __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1);
      __pyx_r = __pyx_mstate_global->__pyx_int_1;
      __Pyx_XGIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L7_resume_from_yield:;
      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_1);
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 255, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":252
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def permissives_count(self):
 *         """The number of permissive types."""
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___2generator26 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":255
 *     def permissives_count(self):
 *         """The number of permissive types."""
 *         return sum(1 for t in self.types() if t.ispermissive)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __pyx_t_4 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_types, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_4 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___genexpr(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_sum, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":252
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def permissives_count(self):
 *         """The number of permissive types."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.permissives_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___2generator26);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":257
 *         return sum(1 for t in self.types() if t.ispermissive)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def pirqcon_count(self):
 *         """The number of Xen pirqcon statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":260
 *     def pirqcon_count(self):
 *         """The number of Xen pirqcon statements."""
 *         return len(self.pirqcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pirqcons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 260, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":257
 *         return sum(1 for t in self.types() if t.ispermissive)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def pirqcon_count(self):
 *         """The number of Xen pirqcon statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.pirqcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":262
 *         return len(self.pirqcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def polcap_count(self):
 *         """The number of policy capabilities."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12polcap_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12polcap_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_12polcap_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12polcap_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":265
 *     def polcap_count(self):
 *         """The number of policy capabilities."""
 *         return len(self.polcaps())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_polcaps, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 265, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 265, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":262
 *         return len(self.pirqcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def polcap_count(self):
 *         """The number of policy capabilities."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.polcap_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":267
 *         return len(self.polcaps())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def portcon_count(self):
 *         """The number of portcon statements."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13portcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13portcon_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13portcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13portcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":270
 *     def portcon_count(self):
 *         """The number of portcon statements."""
 *         return len(self.portcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_portcons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 270, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 270, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":267
 *         return len(self.polcaps())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def portcon_count(self):
 *         """The number of portcon statements."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.portcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":272
 *         return len(self.portcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def role_allow_count(self):
 *         """The number of role allow rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16role_allow_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16role_allow_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16role_allow_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16role_allow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":275
 *     def role_allow_count(self):
 *         """The number of role allow rules."""
 *         return len(RoleAllowIterator.factory(self, self.handle.p.role_allow))             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_17RoleAllowIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.role_allow); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(5, 275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":272
 *         return len(self.portcons())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def role_allow_count(self):
 *         """The number of role allow rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.role_allow_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":277
 *         return len(RoleAllowIterator.factory(self, self.handle.p.role_allow))
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def role_transition_count(self):
 *         """The number of role_transition rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21role_transition_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21role_transition_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_21role_transition_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21role_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":280
 *     def role_transition_count(self):
 *         """The number of role_transition rules."""
 *         return len(RoleTransitionIterator.factory(self, self.handle.p.role_tr))             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_22RoleTransitionIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.role_tr); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(5, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":277
 *         return len(RoleAllowIterator.factory(self, self.handle.p.role_allow))
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def role_transition_count(self):
 *         """The number of role_transition rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.role_transition_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":282
 *         return len(RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___2generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":284
 *     @property
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()             # <<<<<<<<<<<<<<
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_19_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 284, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___2generator27, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy___get___locals_gen, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 284, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.range_transition_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___2generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L7_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(5, 284, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(5, 284, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 284, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 284, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 284, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 284, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 284, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":285
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()
 *                    if r.ruletype is MLSRuletype.range_transition)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_r, __pyx_mstate_global->__pyx_n_u_ruletype); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_MLSRuletype); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_range_transition); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = (__pyx_t_4 == __pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_7) {

      /* "setools/policyrep/selinuxpolicy.pxi":284
 *     @property
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()             # <<<<<<<<<<<<<<
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
*/
      __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1);
      __pyx_r = __pyx_mstate_global->__pyx_int_1;
      __Pyx_XGIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L7_resume_from_yield:;
      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_1);
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 284, __pyx_L1_error)

      /* "setools/policyrep/selinuxpolicy.pxi":285
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()
 *                    if r.ruletype is MLSRuletype.range_transition)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":284
 *     @property
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()             # <<<<<<<<<<<<<<
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":282
 *         return len(RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___2generator27 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":284
 *     @property
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()             # <<<<<<<<<<<<<<
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __pyx_t_4 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_mlsrules, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_4 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___genexpr(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_sum, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":282
 *         return len(RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.range_transition_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___2generator27);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":287
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def role_count(self):
 *         """The number of roles."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10role_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10role_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_10role_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10role_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":290
 *     def role_count(self):
 *         """The number of roles."""
 *         return len(self.roles())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_roles, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":287
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def role_count(self):
 *         """The number of roles."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.role_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":292
 *         return len(self.roles())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type_attribute_count(self):
 *         """The number of (type) attributes."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":295
 *     def type_attribute_count(self):
 *         """The number of (type) attributes."""
 *         return len(self.typeattributes())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_typeattributes, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 295, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":292
 *         return len(self.roles())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type_attribute_count(self):
 *         """The number of (type) attributes."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_attribute_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":297
 *         return len(self.typeattributes())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type_change_count(self):
 *         """The number of type_change rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_change_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_change_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_change_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_change_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":300
 *     def type_change_count(self):
 *         """The number of type_change rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.type_change.value]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":301
 *         """The number of type_change rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.type_change.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_change); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":297
 *         return len(self.typeattributes())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type_change_count(self):
 *         """The number of type_change rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_change_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":303
 *         return self.terule_counts[TERuletype.type_change.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type_count(self):
 *         """The number of types."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10type_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10type_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_10type_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10type_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":306
 *     def type_count(self):
 *         """The number of types."""
 *         return len(self.types())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_types, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 306, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 306, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":303
 *         return self.terule_counts[TERuletype.type_change.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type_count(self):
 *         """The number of types."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":308
 *         return len(self.types())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type_member_count(self):
 *         """The number of type_member rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_member_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_member_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_member_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_member_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":311
 *     def type_member_count(self):
 *         """The number of type_member rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.type_member.value]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":312
 *         """The number of type_member rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.type_member.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_member); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":308
 *         return len(self.types())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type_member_count(self):
 *         """The number of type_member rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_member_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":314
 *         return self.terule_counts[TERuletype.type_member.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type_transition_count(self):
 *         """The number of type_transition rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21type_transition_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21type_transition_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_21type_transition_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21type_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":317
 *     def type_transition_count(self):
 *         """The number of type_transition rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.type_transition.value]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":318
 *         """The number of type_transition rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.type_transition.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_transition); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":314
 *         return self.terule_counts[TERuletype.type_member.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type_transition_count(self):
 *         """The number of type_transition rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_transition_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":320
 *         return self.terule_counts[TERuletype.type_transition.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def typebounds_count(self):
 *         """The number of typebounds rules."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16typebounds_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16typebounds_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16typebounds_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16typebounds_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":323
 *     def typebounds_count(self):
 *         """The number of typebounds rules."""
 *         return len(TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table))             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_18TypeboundsIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_TYPES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(5, 323, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":320
 *         return self.terule_counts[TERuletype.type_transition.value]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def typebounds_count(self):
 *         """The number of typebounds rules."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.typebounds_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":325
 *         return len(TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table))
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def user_count(self):
 *         return len(self.users())
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10user_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10user_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_10user_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10user_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":327
 *     @property
 *     def user_count(self):
 *         return len(self.users())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_users, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 327, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":325
 *         return len(TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table))
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def user_count(self):
 *         return len(self.users())
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.user_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":329
 *         return len(self.users())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def validatetrans_count(self):
 *         """The number of validatetrans."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":332
 *     def validatetrans_count(self):
 *         """The number of validatetrans."""
 *         self._cache_constraint_counts()             # <<<<<<<<<<<<<<
 *         return self.constraint_counts[ConstraintRuletype.validatetrans]
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_constraint_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":333
 *         """The number of validatetrans."""
 *         self._cache_constraint_counts()
 *         return self.constraint_counts[ConstraintRuletype.validatetrans]             # <<<<<<<<<<<<<<
 * 
 *     #
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_validatetrans); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->constraint_counts, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":329
 *         return len(self.users())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def validatetrans_count(self):
 *         """The number of validatetrans."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.validatetrans_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":338
 *     # Policy components lookup functions
 *     #
 *     def lookup_boolean(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a Boolean."""
 *         for b in self.bools():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13lookup_boolean(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_12lookup_boolean, "Look up a Boolean.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_13lookup_boolean = {"lookup_boolean", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13lookup_boolean, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_12lookup_boolean};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13lookup_boolean(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_boolean (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 338, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 338, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_boolean", 0) < (0)) __PYX_ERR(5, 338, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_boolean", 1, 1, 1, i); __PYX_ERR(5, 338, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 338, __pyx_L3_error)
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_boolean", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 338, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_boolean", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_12lookup_boolean(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12lookup_boolean(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_b = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_boolean", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":340
 *     def lookup_boolean(self, name):
 *         """Look up a Boolean."""
 *         for b in self.bools():             # <<<<<<<<<<<<<<
 *             if b == name:
 *                 return b
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_bools, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 340, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 340, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 340, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 340, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 340, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_b, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":341
 *         """Look up a Boolean."""
 *         for b in self.bools():
 *             if b == name:             # <<<<<<<<<<<<<<
 *                 return b
 * 
*/
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_b, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 341, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(5, 341, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":342
 *         for b in self.bools():
 *             if b == name:
 *                 return b             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidBoolean(f"{name} is not a valid Boolean")
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_b);
      __pyx_r = __pyx_v_b;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":341
 *         """Look up a Boolean."""
 *         for b in self.bools():
 *             if b == name:             # <<<<<<<<<<<<<<
 *                 return b
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":340
 *     def lookup_boolean(self, name):
 *         """Look up a Boolean."""
 *         for b in self.bools():             # <<<<<<<<<<<<<<
 *             if b == name:
 *                 return b
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":344
 *                 return b
 * 
 *         raise InvalidBoolean(f"{name} is not a valid Boolean")             # <<<<<<<<<<<<<<
 * 
 *     def lookup_category(self, name, deref=True):
*/
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_InvalidBoolean); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_Boolean); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_3 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
    __pyx_t_3 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_9};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 344, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":338
 *     # Policy components lookup functions
 *     #
 *     def lookup_boolean(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a Boolean."""
 *         for b in self.bools():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_boolean", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_b);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":346
 *         raise InvalidBoolean(f"{name} is not a valid Boolean")
 * 
 *     def lookup_category(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15lookup_category(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_14lookup_category, "Look up a category, with optional alias dereferencing.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_15lookup_category = {"lookup_category", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15lookup_category, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_14lookup_category};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15lookup_category(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_deref = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_category (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_deref,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 346, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 346, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 346, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_category", 0) < (0)) __PYX_ERR(5, 346, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_True));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_category", 0, 1, 2, i); __PYX_ERR(5, 346, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 346, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 346, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_True));
    }
    __pyx_v_name = values[0];
    __pyx_v_deref = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_category", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 346, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_category", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14lookup_category(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name, __pyx_v_deref);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14lookup_category(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref) {
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_category", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":348
 *     def lookup_category(self, name, deref=True):
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():             # <<<<<<<<<<<<<<
 *             if c == name or (deref and name in list(c.aliases())):
 *                 return c
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_categories, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 348, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 348, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 348, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 348, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 348, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 348, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 348, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":349
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():
 *             if c == name or (deref and name in list(c.aliases())):             # <<<<<<<<<<<<<<
 *                 return c
 * 
*/
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_c, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 349, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 349, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_deref); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 349, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_8 = __pyx_v_c;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_aliases, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 349, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_8 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_8, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 349, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_6 = __pyx_t_7;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":350
 *         for c in self.categories():
 *             if c == name or (deref and name in list(c.aliases())):
 *                 return c             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidCategory(f"{name} is not a valid category")
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_c);
      __pyx_r = __pyx_v_c;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":349
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():
 *             if c == name or (deref and name in list(c.aliases())):             # <<<<<<<<<<<<<<
 *                 return c
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":348
 *     def lookup_category(self, name, deref=True):
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():             # <<<<<<<<<<<<<<
 *             if c == name or (deref and name in list(c.aliases())):
 *                 return c
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":352
 *                 return c
 * 
 *         raise InvalidCategory(f"{name} is not a valid category")             # <<<<<<<<<<<<<<
 * 
 *     def lookup_class(self, name):
*/
  __pyx_t_8 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_InvalidCategory); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_category_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_3 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
    assert(__pyx_t_8);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_8);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
    __pyx_t_3 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_10};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 352, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 352, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":346
 *         raise InvalidBoolean(f"{name} is not a valid Boolean")
 * 
 *     def lookup_category(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_category", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":354
 *         raise InvalidCategory(f"{name} is not a valid category")
 * 
 *     def lookup_class(self, name):             # <<<<<<<<<<<<<<
 *         """Look up an object class."""
 *         for cls in self.classes():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17lookup_class(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_16lookup_class, "Look up an object class.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_17lookup_class = {"lookup_class", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17lookup_class, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_16lookup_class};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17lookup_class(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_class (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 354, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 354, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_class", 0) < (0)) __PYX_ERR(5, 354, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_class", 1, 1, 1, i); __PYX_ERR(5, 354, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 354, __pyx_L3_error)
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_class", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 354, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_class", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16lookup_class(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16lookup_class(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_cls = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_class", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":356
 *     def lookup_class(self, name):
 *         """Look up an object class."""
 *         for cls in self.classes():             # <<<<<<<<<<<<<<
 *             if cls == name:
 *                 return cls
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_classes, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 356, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 356, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 356, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 356, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 356, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 356, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 356, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_cls, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":357
 *         """Look up an object class."""
 *         for cls in self.classes():
 *             if cls == name:             # <<<<<<<<<<<<<<
 *                 return cls
 * 
*/
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_cls, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 357, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(5, 357, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":358
 *         for cls in self.classes():
 *             if cls == name:
 *                 return cls             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidClass(f"{name} is not a valid class")
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_cls);
      __pyx_r = __pyx_v_cls;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":357
 *         """Look up an object class."""
 *         for cls in self.classes():
 *             if cls == name:             # <<<<<<<<<<<<<<
 *                 return cls
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":356
 *     def lookup_class(self, name):
 *         """Look up an object class."""
 *         for cls in self.classes():             # <<<<<<<<<<<<<<
 *             if cls == name:
 *                 return cls
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":360
 *                 return cls
 * 
 *         raise InvalidClass(f"{name} is not a valid class")             # <<<<<<<<<<<<<<
 * 
 *     def lookup_common(self, name):
*/
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_InvalidClass); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_class); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_3 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
    __pyx_t_3 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_9};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 360, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":354
 *         raise InvalidCategory(f"{name} is not a valid category")
 * 
 *     def lookup_class(self, name):             # <<<<<<<<<<<<<<
 *         """Look up an object class."""
 *         for cls in self.classes():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_class", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cls);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":362
 *         raise InvalidClass(f"{name} is not a valid class")
 * 
 *     def lookup_common(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a common permission set."""
 *         for common in self.commons():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19lookup_common(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_18lookup_common, "Look up a common permission set.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_19lookup_common = {"lookup_common", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19lookup_common, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_18lookup_common};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19lookup_common(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_common (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 362, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 362, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_common", 0) < (0)) __PYX_ERR(5, 362, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_common", 1, 1, 1, i); __PYX_ERR(5, 362, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 362, __pyx_L3_error)
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_common", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 362, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_common", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_18lookup_common(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18lookup_common(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_common = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_common", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":364
 *     def lookup_common(self, name):
 *         """Look up a common permission set."""
 *         for common in self.commons():             # <<<<<<<<<<<<<<
 *             if common == name:
 *                 return common
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_commons, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 364, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 364, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 364, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 364, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 364, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 364, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 364, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_common, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":365
 *         """Look up a common permission set."""
 *         for common in self.commons():
 *             if common == name:             # <<<<<<<<<<<<<<
 *                 return common
 * 
*/
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_common, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 365, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(5, 365, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":366
 *         for common in self.commons():
 *             if common == name:
 *                 return common             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidCommon(f"{name} is not a valid common")
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_common);
      __pyx_r = __pyx_v_common;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":365
 *         """Look up a common permission set."""
 *         for common in self.commons():
 *             if common == name:             # <<<<<<<<<<<<<<
 *                 return common
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":364
 *     def lookup_common(self, name):
 *         """Look up a common permission set."""
 *         for common in self.commons():             # <<<<<<<<<<<<<<
 *             if common == name:
 *                 return common
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":368
 *                 return common
 * 
 *         raise InvalidCommon(f"{name} is not a valid common")             # <<<<<<<<<<<<<<
 * 
 *     def lookup_context(self, ctx):
*/
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_InvalidCommon); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_common); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_3 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
    __pyx_t_3 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_9};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 368, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 368, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":362
 *         raise InvalidClass(f"{name} is not a valid class")
 * 
 *     def lookup_common(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a common permission set."""
 *         for common in self.commons():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_common", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_common);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":370
 *         raise InvalidCommon(f"{name} is not a valid common")
 * 
 *     def lookup_context(self, ctx):             # <<<<<<<<<<<<<<
 *         """Look up a context."""
 *         return Context.factory_from_string(self, ctx)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21lookup_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_20lookup_context, "Look up a context.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_21lookup_context = {"lookup_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21lookup_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_20lookup_context};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21lookup_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_ctx = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_ctx,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 370, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 370, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_context", 0) < (0)) __PYX_ERR(5, 370, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_context", 1, 1, 1, i); __PYX_ERR(5, 370, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 370, __pyx_L3_error)
    }
    __pyx_v_ctx = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 370, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_20lookup_context(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_ctx);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20lookup_context(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_context", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":372
 *     def lookup_context(self, ctx):
 *         """Look up a context."""
 *         return Context.factory_from_string(self, ctx)             # <<<<<<<<<<<<<<
 * 
 *     def lookup_level(self, level):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_ctx;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(5, 372, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory_from_string(__pyx_v_self, ((PyObject*)__pyx_t_1))); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":370
 *         raise InvalidCommon(f"{name} is not a valid common")
 * 
 *     def lookup_context(self, ctx):             # <<<<<<<<<<<<<<
 *         """Look up a context."""
 *         return Context.factory_from_string(self, ctx)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":374
 *         return Context.factory_from_string(self, ctx)
 * 
 *     def lookup_level(self, level):             # <<<<<<<<<<<<<<
 *         """Look up a MLS level."""
 *         return Level.factory_from_string(self, level)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_23lookup_level(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_22lookup_level, "Look up a MLS level.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_23lookup_level = {"lookup_level", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_23lookup_level, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_22lookup_level};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_23lookup_level(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_level = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_level (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_level_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 374, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 374, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_level", 0) < (0)) __PYX_ERR(5, 374, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_level", 1, 1, 1, i); __PYX_ERR(5, 374, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 374, __pyx_L3_error)
    }
    __pyx_v_level = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_level", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 374, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_level", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_22lookup_level(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_level);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22lookup_level(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_level) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_level", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":376
 *     def lookup_level(self, level):
 *         """Look up a MLS level."""
 *         return Level.factory_from_string(self, level)             # <<<<<<<<<<<<<<
 * 
 *     def lookup_sensitivity(self, name, deref=True):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_level;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(5, 376, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory_from_string(__pyx_v_self, ((PyObject*)__pyx_t_1))); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":374
 *         return Context.factory_from_string(self, ctx)
 * 
 *     def lookup_level(self, level):             # <<<<<<<<<<<<<<
 *         """Look up a MLS level."""
 *         return Level.factory_from_string(self, level)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_level", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":378
 *         return Level.factory_from_string(self, level)
 * 
 *     def lookup_sensitivity(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_25lookup_sensitivity(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_24lookup_sensitivity, "Look up a MLS sensitivity by name, with optional alias dereferencing.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_25lookup_sensitivity = {"lookup_sensitivity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_25lookup_sensitivity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_24lookup_sensitivity};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_25lookup_sensitivity(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_deref = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_sensitivity (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_deref,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 378, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 378, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 378, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_sensitivity", 0) < (0)) __PYX_ERR(5, 378, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_True));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_sensitivity", 0, 1, 2, i); __PYX_ERR(5, 378, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 378, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 378, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_True));
    }
    __pyx_v_name = values[0];
    __pyx_v_deref = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_sensitivity", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 378, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_sensitivity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_24lookup_sensitivity(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name, __pyx_v_deref);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_24lookup_sensitivity(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref) {
  PyObject *__pyx_v_s = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_sensitivity", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":380
 *     def lookup_sensitivity(self, name, deref=True):
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():             # <<<<<<<<<<<<<<
 *             if s == name or (deref and name in list(s.aliases())):
 *                 return s
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_sensitivities, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 380, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 380, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 380, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 380, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 380, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 380, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 380, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":381
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():
 *             if s == name or (deref and name in list(s.aliases())):             # <<<<<<<<<<<<<<
 *                 return s
 * 
*/
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_s, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 381, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 381, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_deref); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 381, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_8 = __pyx_v_s;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_aliases, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 381, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_8 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 381, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_8, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 381, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_6 = __pyx_t_7;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":382
 *         for s in self.sensitivities():
 *             if s == name or (deref and name in list(s.aliases())):
 *                 return s             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidSensitivity(f"{name} is not a valid sensitivity")
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_s);
      __pyx_r = __pyx_v_s;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":381
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():
 *             if s == name or (deref and name in list(s.aliases())):             # <<<<<<<<<<<<<<
 *                 return s
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":380
 *     def lookup_sensitivity(self, name, deref=True):
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():             # <<<<<<<<<<<<<<
 *             if s == name or (deref and name in list(s.aliases())):
 *                 return s
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":384
 *                 return s
 * 
 *         raise InvalidSensitivity(f"{name} is not a valid sensitivity")             # <<<<<<<<<<<<<<
 * 
 *     def lookup_range(self, range_):
*/
  __pyx_t_8 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_InvalidSensitivity); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_sensitivity_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_3 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
    assert(__pyx_t_8);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_8);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
    __pyx_t_3 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_10};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 384, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":378
 *         return Level.factory_from_string(self, level)
 * 
 *     def lookup_sensitivity(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_sensitivity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_s);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":386
 *         raise InvalidSensitivity(f"{name} is not a valid sensitivity")
 * 
 *     def lookup_range(self, range_):             # <<<<<<<<<<<<<<
 *         """Look up a MLS range."""
 *         return Range.factory_from_string(self, range_)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_27lookup_range(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_26lookup_range, "Look up a MLS range.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_27lookup_range = {"lookup_range", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_27lookup_range, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_26lookup_range};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_27lookup_range(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_range_ = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_range (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_range,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 386, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 386, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_range", 0) < (0)) __PYX_ERR(5, 386, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_range", 1, 1, 1, i); __PYX_ERR(5, 386, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 386, __pyx_L3_error)
    }
    __pyx_v_range_ = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_range", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 386, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_26lookup_range(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_range_);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_26lookup_range(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_range_) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_range", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":388
 *     def lookup_range(self, range_):
 *         """Look up a MLS range."""
 *         return Range.factory_from_string(self, range_)             # <<<<<<<<<<<<<<
 * 
 *     def lookup_role(self, name):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_range_;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(5, 388, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_5Range_factory_from_string(__pyx_v_self, ((PyObject*)__pyx_t_1))); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":386
 *         raise InvalidSensitivity(f"{name} is not a valid sensitivity")
 * 
 *     def lookup_range(self, range_):             # <<<<<<<<<<<<<<
 *         """Look up a MLS range."""
 *         return Range.factory_from_string(self, range_)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":390
 *         return Range.factory_from_string(self, range_)
 * 
 *     def lookup_role(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a role by name."""
 *         for r in self.roles():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_29lookup_role(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_28lookup_role, "Look up a role by name.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_29lookup_role = {"lookup_role", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_29lookup_role, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_28lookup_role};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_29lookup_role(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_role (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 390, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 390, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_role", 0) < (0)) __PYX_ERR(5, 390, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_role", 1, 1, 1, i); __PYX_ERR(5, 390, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 390, __pyx_L3_error)
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_role", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 390, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_role", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_28lookup_role(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_28lookup_role(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_r = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_role", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":392
 *     def lookup_role(self, name):
 *         """Look up a role by name."""
 *         for r in self.roles():             # <<<<<<<<<<<<<<
 *             if r == name:
 *                 return r
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_roles, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 392, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 392, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 392, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 392, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 392, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 392, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 392, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_r, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":393
 *         """Look up a role by name."""
 *         for r in self.roles():
 *             if r == name:             # <<<<<<<<<<<<<<
 *                 return r
 * 
*/
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_r, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 393, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(5, 393, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":394
 *         for r in self.roles():
 *             if r == name:
 *                 return r             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidRole(f"{name} is not a valid role")
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_r);
      __pyx_r = __pyx_v_r;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":393
 *         """Look up a role by name."""
 *         for r in self.roles():
 *             if r == name:             # <<<<<<<<<<<<<<
 *                 return r
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":392
 *     def lookup_role(self, name):
 *         """Look up a role by name."""
 *         for r in self.roles():             # <<<<<<<<<<<<<<
 *             if r == name:
 *                 return r
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":396
 *                 return r
 * 
 *         raise InvalidRole(f"{name} is not a valid role")             # <<<<<<<<<<<<<<
 * 
 *     def lookup_type(self, name, deref=True):
*/
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_InvalidRole); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_role); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_3 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
    __pyx_t_3 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_9};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 396, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 396, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":390
 *         return Range.factory_from_string(self, range_)
 * 
 *     def lookup_role(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a role by name."""
 *         for r in self.roles():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_role", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_r);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":398
 *         raise InvalidRole(f"{name} is not a valid role")
 * 
 *     def lookup_type(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_31lookup_type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_30lookup_type, "Look up a type by name, with optional alias dereferencing.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_31lookup_type = {"lookup_type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_31lookup_type, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_30lookup_type};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_31lookup_type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_deref = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_deref,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 398, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 398, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 398, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_type", 0) < (0)) __PYX_ERR(5, 398, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_True));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_type", 0, 1, 2, i); __PYX_ERR(5, 398, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 398, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 398, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_True));
    }
    __pyx_v_name = values[0];
    __pyx_v_deref = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_type", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 398, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_30lookup_type(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name, __pyx_v_deref);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_30lookup_type(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref) {
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_type", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":400
 *     def lookup_type(self, name, deref=True):
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():             # <<<<<<<<<<<<<<
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_types, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 400, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 400, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 400, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 400, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 400, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 400, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 400, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":401
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):             # <<<<<<<<<<<<<<
 *                 return t
 * 
*/
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 401, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 401, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_deref); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 401, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_8 = __pyx_v_t;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_aliases, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 401, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_8 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 401, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_8, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 401, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_6 = __pyx_t_7;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":402
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidType(f"{name} is not a valid type")
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_t);
      __pyx_r = __pyx_v_t;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":401
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):             # <<<<<<<<<<<<<<
 *                 return t
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":400
 *     def lookup_type(self, name, deref=True):
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():             # <<<<<<<<<<<<<<
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":404
 *                 return t
 * 
 *         raise InvalidType(f"{name} is not a valid type")             # <<<<<<<<<<<<<<
 * 
 *     def lookup_type_or_attr(self, name, deref=True):
*/
  __pyx_t_8 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_InvalidType); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_type); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_3 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
    assert(__pyx_t_8);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_8);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
    __pyx_t_3 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_10};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 404, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":398
 *         raise InvalidRole(f"{name} is not a valid role")
 * 
 *     def lookup_type(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":406
 *         raise InvalidType(f"{name} is not a valid type")
 * 
 *     def lookup_type_or_attr(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_33lookup_type_or_attr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_32lookup_type_or_attr, "Look up a type or type attribute by name, with optional alias dereferencing.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_33lookup_type_or_attr = {"lookup_type_or_attr", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_33lookup_type_or_attr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_32lookup_type_or_attr};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_33lookup_type_or_attr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_deref = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_type_or_attr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_deref,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 406, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 406, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 406, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_type_or_attr", 0) < (0)) __PYX_ERR(5, 406, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_True));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_type_or_attr", 0, 1, 2, i); __PYX_ERR(5, 406, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 406, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 406, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_True));
    }
    __pyx_v_name = values[0];
    __pyx_v_deref = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_type_or_attr", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 406, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_type_or_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_32lookup_type_or_attr(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name, __pyx_v_deref);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_32lookup_type_or_attr(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref) {
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_type_or_attr", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":408
 *     def lookup_type_or_attr(self, name, deref=True):
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():             # <<<<<<<<<<<<<<
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_types, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 408, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 408, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 408, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 408, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 408, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 408, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 408, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":409
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):             # <<<<<<<<<<<<<<
 *                 return t
 * 
*/
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 409, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 409, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_deref); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 409, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_8 = __pyx_v_t;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_aliases, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 409, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_8 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 409, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_8, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 409, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_6 = __pyx_t_7;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":410
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t             # <<<<<<<<<<<<<<
 * 
 *         for t in self.typeattributes():
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_t);
      __pyx_r = __pyx_v_t;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":409
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):             # <<<<<<<<<<<<<<
 *                 return t
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":408
 *     def lookup_type_or_attr(self, name, deref=True):
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():             # <<<<<<<<<<<<<<
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":412
 *                 return t
 * 
 *         for t in self.typeattributes():             # <<<<<<<<<<<<<<
 *             if t == name:
 *                 return t
*/
  __pyx_t_8 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_8);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_typeattributes, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 412, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_8 = __pyx_t_2; __Pyx_INCREF(__pyx_t_8);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 412, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 412, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_8))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_8);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 412, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_8, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_8);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 412, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_4));
        #else
        __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_8, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 412, __pyx_L1_error)
    } else {
      __pyx_t_2 = __pyx_t_5(__pyx_t_8);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 412, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":413
 * 
 *         for t in self.typeattributes():
 *             if t == name:             # <<<<<<<<<<<<<<
 *                 return t
 * 
*/
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_t, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 413, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(5, 413, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":414
 *         for t in self.typeattributes():
 *             if t == name:
 *                 return t             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidType(f"{name} is not a valid type attribute")
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_t);
      __pyx_r = __pyx_v_t;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":413
 * 
 *         for t in self.typeattributes():
 *             if t == name:             # <<<<<<<<<<<<<<
 *                 return t
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":412
 *                 return t
 * 
 *         for t in self.typeattributes():             # <<<<<<<<<<<<<<
 *             if t == name:
 *                 return t
*/
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":416
 *                 return t
 * 
 *         raise InvalidType(f"{name} is not a valid type attribute")             # <<<<<<<<<<<<<<
 * 
 *     def lookup_typeattr(self, name):
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_InvalidType); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_type_attribute); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_3 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
    __pyx_t_3 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_10};
    __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
  }
  __Pyx_Raise(__pyx_t_8, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __PYX_ERR(5, 416, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":406
 *         raise InvalidType(f"{name} is not a valid type")
 * 
 *     def lookup_type_or_attr(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_type_or_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":418
 *         raise InvalidType(f"{name} is not a valid type attribute")
 * 
 *     def lookup_typeattr(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_35lookup_typeattr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_34lookup_typeattr, "Look up a type attribute by name.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_35lookup_typeattr = {"lookup_typeattr", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_35lookup_typeattr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_34lookup_typeattr};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_35lookup_typeattr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_typeattr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 418, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 418, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_typeattr", 0) < (0)) __PYX_ERR(5, 418, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_typeattr", 1, 1, 1, i); __PYX_ERR(5, 418, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 418, __pyx_L3_error)
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_typeattr", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 418, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_typeattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_34lookup_typeattr(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_34lookup_typeattr(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_typeattr", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":420
 *     def lookup_typeattr(self, name):
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():             # <<<<<<<<<<<<<<
 *             if t == name:
 *                 return t
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_typeattributes, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 420, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 420, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 420, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 420, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 420, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":421
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():
 *             if t == name:             # <<<<<<<<<<<<<<
 *                 return t
 * 
*/
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 421, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(5, 421, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":422
 *         for t in self.typeattributes():
 *             if t == name:
 *                 return t             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidType(f"{name} is not a valid type attribute")
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_t);
      __pyx_r = __pyx_v_t;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":421
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():
 *             if t == name:             # <<<<<<<<<<<<<<
 *                 return t
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":420
 *     def lookup_typeattr(self, name):
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():             # <<<<<<<<<<<<<<
 *             if t == name:
 *                 return t
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":424
 *                 return t
 * 
 *         raise InvalidType(f"{name} is not a valid type attribute")             # <<<<<<<<<<<<<<
 * 
 *     def lookup_user(self, name):
*/
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_InvalidType); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_type_attribute); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_3 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
    __pyx_t_3 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_9};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 424, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":418
 *         raise InvalidType(f"{name} is not a valid type attribute")
 * 
 *     def lookup_typeattr(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_typeattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":426
 *         raise InvalidType(f"{name} is not a valid type attribute")
 * 
 *     def lookup_user(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a user by name."""
 *         for u in self.users():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_37lookup_user(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_36lookup_user, "Look up a user by name.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_37lookup_user = {"lookup_user", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_37lookup_user, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_36lookup_user};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_37lookup_user(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_user (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 426, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 426, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookup_user", 0) < (0)) __PYX_ERR(5, 426, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookup_user", 1, 1, 1, i); __PYX_ERR(5, 426, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 426, __pyx_L3_error)
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_user", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 426, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_user", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_36lookup_user(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_36lookup_user(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_u = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_user", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":428
 *     def lookup_user(self, name):
 *         """Look up a user by name."""
 *         for u in self.users():             # <<<<<<<<<<<<<<
 *             if u == name:
 *                 return u
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_users, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 428, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 428, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 428, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 428, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 428, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_u, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":429
 *         """Look up a user by name."""
 *         for u in self.users():
 *             if u == name:             # <<<<<<<<<<<<<<
 *                 return u
 * 
*/
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_u, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 429, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(5, 429, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":430
 *         for u in self.users():
 *             if u == name:
 *                 return u             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidUser(f"{name} is not a valid user")
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_u);
      __pyx_r = __pyx_v_u;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":429
 *         """Look up a user by name."""
 *         for u in self.users():
 *             if u == name:             # <<<<<<<<<<<<<<
 *                 return u
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":428
 *     def lookup_user(self, name):
 *         """Look up a user by name."""
 *         for u in self.users():             # <<<<<<<<<<<<<<
 *             if u == name:
 *                 return u
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":432
 *                 return u
 * 
 *         raise InvalidUser(f"{name} is not a valid user")             # <<<<<<<<<<<<<<
 * 
 *     #
*/
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_InvalidUser); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_is_not_a_valid_user); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_3 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
    __pyx_t_3 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_9};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 432, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":426
 *         raise InvalidType(f"{name} is not a valid type attribute")
 * 
 *     def lookup_user(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a user by name."""
 *         for u in self.users():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_user", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_u);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":437
 *     # Policy components iterators
 *     #
 *     def bools(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all Booleans."""
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_39bools(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_38bools, "Iterator which yields all Booleans.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_39bools = {"bools", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_39bools, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_38bools};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_39bools(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bools (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("bools", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("bools", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_38bools(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_38bools(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bools", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":439
 *     def bools(self):
 *         """Iterator which yields all Booleans."""
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)             # <<<<<<<<<<<<<<
 * 
 *     def bounds(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_22BooleanHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_BOOLS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":437
 *     # Policy components iterators
 *     #
 *     def bools(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all Booleans."""
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.bools", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":441
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)
 * 
 *     def bounds(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all *bounds statements (typebounds, etc.)"""
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_41bounds(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_40bounds, "Iterator which yields all *bounds statements (typebounds, etc.)");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_41bounds = {"bounds", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_41bounds, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_40bounds};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_41bounds(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bounds (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("bounds", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("bounds", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_40bounds(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_40bounds(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bounds", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":443
 *     def bounds(self):
 *         """Iterator which yields all *bounds statements (typebounds, etc.)"""
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)             # <<<<<<<<<<<<<<
 * 
 *     def categories(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_18TypeboundsIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_TYPES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":441
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)
 * 
 *     def bounds(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all *bounds statements (typebounds, etc.)"""
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.bounds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":445
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def categories(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all MLS categories."""
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_43categories(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_42categories, "Iterator which yields all MLS categories.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_43categories = {"categories", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_43categories, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_42categories};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_43categories(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("categories (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("categories", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("categories", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_42categories(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_42categories(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("categories", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":447
 *     def categories(self):
 *         """Iterator which yields all MLS categories."""
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)             # <<<<<<<<<<<<<<
 * 
 *     def classes(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_23CategoryHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_CATS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":445
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def categories(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all MLS categories."""
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.categories", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":449
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)
 * 
 *     def classes(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all object classes."""
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_45classes(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_44classes, "Iterator which yields all object classes.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_45classes = {"classes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_45classes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_44classes};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_45classes(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("classes (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("classes", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("classes", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_44classes(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_44classes(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("classes", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":451
 *     def classes(self):
 *         """Iterator which yields all object classes."""
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)             # <<<<<<<<<<<<<<
 * 
 *     def commons(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_23ObjClassHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_CLASSES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":449
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)
 * 
 *     def classes(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all object classes."""
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.classes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":453
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)
 * 
 *     def commons(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all commons."""
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_47commons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_46commons, "Iterator which yields all commons.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_47commons = {"commons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_47commons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_46commons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_47commons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("commons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("commons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("commons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_46commons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_46commons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("commons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":455
 *     def commons(self):
 *         """Iterator which yields all commons."""
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)             # <<<<<<<<<<<<<<
 * 
 *     def defaults(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_21CommonHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_COMMONS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":453
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)
 * 
 *     def commons(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all commons."""
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.commons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_50generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":457
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_49defaults(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_48defaults, "Iterator over all default_* statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_49defaults = {"defaults", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_49defaults, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_48defaults};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_49defaults(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("defaults (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("defaults", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("defaults", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_48defaults(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_48defaults(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("defaults", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_20_defaults(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 457, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_50generator4, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_defaults, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_defaults, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 457, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.defaults", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_50generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  __Pyx_PySendResult __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("defaults", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield_from;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(5, 457, __pyx_L1_error)
  }

  /* "setools/policyrep/selinuxpolicy.pxi":459
 *     def defaults(self):
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):             # <<<<<<<<<<<<<<
 *             yield from cls.defaults()
 * 
*/
  __pyx_t_1 = __pyx_f_7setools_9policyrep_23ObjClassHashtabIterator_factory(__pyx_cur_scope->__pyx_v_self, (&(__pyx_cur_scope->__pyx_v_self->handle->p.symtab[SYM_CLASSES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 459, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 459, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 459, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_3;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 459, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3);
        #endif
        ++__pyx_t_3;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 459, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 459, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_cls);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_cls, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":460
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):
 *             yield from cls.defaults()             # <<<<<<<<<<<<<<
 * 
 *     def levels(self):
*/
    __pyx_t_5 = __pyx_cur_scope->__pyx_v_cls;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_defaults, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 460, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L6_resume_from_yield_from:;
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 460, __pyx_L1_error)
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(5, 460, __pyx_L1_error)
    }

    /* "setools/policyrep/selinuxpolicy.pxi":459
 *     def defaults(self):
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):             # <<<<<<<<<<<<<<
 *             yield from cls.defaults()
 * 
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/selinuxpolicy.pxi":457
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("defaults", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":462
 *             yield from cls.defaults()
 * 
 *     def levels(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all level declarations."""
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_52levels(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_51levels, "Iterator which yields all level declarations.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_52levels = {"levels", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_52levels, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_51levels};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_52levels(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("levels (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("levels", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("levels", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_51levels(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_51levels(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("levels", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":464
 *     def levels(self):
 *         """Iterator which yields all level declarations."""
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)             # <<<<<<<<<<<<<<
 * 
 *     def polcaps(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_24LevelDeclHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":462
 *             yield from cls.defaults()
 * 
 *     def levels(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all level declarations."""
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.levels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":466
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 * 
 *     def polcaps(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all policy capabilities."""
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_54polcaps(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_53polcaps, "Iterator which yields all policy capabilities.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_54polcaps = {"polcaps", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_54polcaps, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_53polcaps};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_54polcaps(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("polcaps (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("polcaps", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("polcaps", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_53polcaps(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_53polcaps(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("polcaps", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":468
 *     def polcaps(self):
 *         """Iterator which yields all policy capabilities."""
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)             # <<<<<<<<<<<<<<
 * 
 *     def roles(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_24PolicyCapabilityIterator_factory(__pyx_v_self, (&__pyx_v_self->handle->p.policycaps)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":466
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 * 
 *     def polcaps(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all policy capabilities."""
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.polcaps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":470
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)
 * 
 *     def roles(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all roles."""
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_56roles(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_55roles, "Iterator which yields all roles.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_56roles = {"roles", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_56roles, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_55roles};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_56roles(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("roles (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("roles", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("roles", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_55roles(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_55roles(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("roles", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":472
 *     def roles(self):
 *         """Iterator which yields all roles."""
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)             # <<<<<<<<<<<<<<
 * 
 *     def sensitivities(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_19RoleHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_ROLES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":470
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)
 * 
 *     def roles(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all roles."""
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.roles", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":474
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)
 * 
 *     def sensitivities(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all sensitivities."""
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_58sensitivities(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_57sensitivities, "Iterator over all sensitivities.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_58sensitivities = {"sensitivities", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_58sensitivities, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_57sensitivities};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_58sensitivities(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("sensitivities (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("sensitivities", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("sensitivities", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_57sensitivities(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_57sensitivities(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sensitivities", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":476
 *     def sensitivities(self):
 *         """Iterator over all sensitivities."""
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)             # <<<<<<<<<<<<<<
 * 
 *     def types(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_26SensitivityHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 476, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":474
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)
 * 
 *     def sensitivities(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all sensitivities."""
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.sensitivities", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":478
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 * 
 *     def types(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all types."""
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_60types(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_59types, "Iterator over all types.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_60types = {"types", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_60types, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_59types};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_60types(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("types (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("types", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("types", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_59types(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_59types(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("types", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":480
 *     def types(self):
 *         """Iterator over all types."""
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)             # <<<<<<<<<<<<<<
 * 
 *     def typeattributes(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_19TypeHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_TYPES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":478
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 * 
 *     def types(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all types."""
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.types", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":482
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def typeattributes(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all (type) attributes."""
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_62typeattributes(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_61typeattributes, "Iterator over all (type) attributes.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_62typeattributes = {"typeattributes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_62typeattributes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_61typeattributes};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_62typeattributes(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("typeattributes (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("typeattributes", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("typeattributes", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_61typeattributes(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_61typeattributes(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("typeattributes", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":484
 *     def typeattributes(self):
 *         """Iterator over all (type) attributes."""
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)             # <<<<<<<<<<<<<<
 * 
 *     def users(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_28TypeAttributeHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_TYPES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":482
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def typeattributes(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all (type) attributes."""
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.typeattributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":486
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def users(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all roles."""
 *         return UserHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_USERS].table)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_64users(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_63users, "Iterator which yields all roles.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_64users = {"users", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_64users, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_63users};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_64users(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("users (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("users", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("users", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_63users(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_63users(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("users", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":488
 *     def users(self):
 *         """Iterator which yields all roles."""
 *         return UserHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_USERS].table)             # <<<<<<<<<<<<<<
 * 
 *     #
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_19UserHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_USERS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":486
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def users(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all roles."""
 *         return UserHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_USERS].table)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.users", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":493
 *     # Policy rules iterators
 *     #
 *     def conditionals(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all conditional rule blocks."""
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_66conditionals(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_65conditionals, "Iterator over all conditional rule blocks.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_66conditionals = {"conditionals", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_66conditionals, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_65conditionals};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_66conditionals(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("conditionals (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("conditionals", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("conditionals", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_65conditionals(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_65conditionals(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("conditionals", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":495
 *     def conditionals(self):
 *         """Iterator over all conditional rule blocks."""
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)             # <<<<<<<<<<<<<<
 * 
 *     def mlsrules(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_19ConditionalIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.cond_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":493
 *     # Policy rules iterators
 *     #
 *     def conditionals(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all conditional rule blocks."""
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.conditionals", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":497
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)
 * 
 *     def mlsrules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all MLS rules."""
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_68mlsrules(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_67mlsrules, "Iterator over all MLS rules.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_68mlsrules = {"mlsrules", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_68mlsrules, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_67mlsrules};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_68mlsrules(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mlsrules (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("mlsrules", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("mlsrules", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_67mlsrules(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_67mlsrules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("mlsrules", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":499
 *     def mlsrules(self):
 *         """Iterator over all MLS rules."""
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)             # <<<<<<<<<<<<<<
 * 
 *     def rbacrules(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_15MLSRuleIterator_factory(__pyx_v_self, (&__pyx_v_self->handle->p.range_tr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":497
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)
 * 
 *     def mlsrules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all MLS rules."""
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.mlsrules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":501
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)
 * 
 *     def rbacrules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all RBAC rules."""
 *         return itertools.chain(RoleAllowIterator.factory(self, self.handle.p.role_allow),
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_70rbacrules(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_69rbacrules, "Iterator over all RBAC rules.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_70rbacrules = {"rbacrules", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_70rbacrules, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_69rbacrules};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_70rbacrules(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rbacrules (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("rbacrules", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("rbacrules", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_69rbacrules(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_69rbacrules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rbacrules", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":503
 *     def rbacrules(self):
 *         """Iterator over all RBAC rules."""
 *         return itertools.chain(RoleAllowIterator.factory(self, self.handle.p.role_allow),             # <<<<<<<<<<<<<<
 *                                RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_chain); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_f_7setools_9policyrep_17RoleAllowIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.role_allow); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "setools/policyrep/selinuxpolicy.pxi":504
 *         """Iterator over all RBAC rules."""
 *         return itertools.chain(RoleAllowIterator.factory(self, self.handle.p.role_allow),
 *                                RoleTransitionIterator.factory(self, self.handle.p.role_tr))             # <<<<<<<<<<<<<<
 * 
 *     def terules(self):
*/
  __pyx_t_5 = __pyx_f_7setools_9policyrep_22RoleTransitionIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.role_tr); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_3, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 503, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":501
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)
 * 
 *     def rbacrules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all RBAC rules."""
 *         return itertools.chain(RoleAllowIterator.factory(self, self.handle.p.role_allow),
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.rbacrules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_73generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":506
 *                                RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
 *     def terules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all type enforcement rules."""
 *         yield from TERuleIterator.factory(self, &self.handle.p.te_avtab)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_72terules(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_71terules, "Iterator over all type enforcement rules.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_72terules = {"terules", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_72terules, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_71terules};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_72terules(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("terules (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("terules", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("terules", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_71terules(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_71terules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("terules", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_21_terules(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 506, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_73generator5, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_terules, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_terules, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 506, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.terules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_73generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  __Pyx_PySendResult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("terules", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_yield_from;
    case 2: goto __pyx_L5_resume_from_yield_from;
    case 3: goto __pyx_L8_resume_from_yield_from;
    case 4: goto __pyx_L9_resume_from_yield_from;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(5, 506, __pyx_L1_error)
  }

  /* "setools/policyrep/selinuxpolicy.pxi":508
 *     def terules(self):
 *         """Iterator over all type enforcement rules."""
 *         yield from TERuleIterator.factory(self, &self.handle.p.te_avtab)             # <<<<<<<<<<<<<<
 *         yield from FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans)
 * 
*/
  __pyx_t_1 = __pyx_f_7setools_9policyrep_14TERuleIterator_factory(__pyx_cur_scope->__pyx_v_self, (&__pyx_cur_scope->__pyx_v_self->handle->p.te_avtab)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_2 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_yield_from:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 508, __pyx_L1_error)
  } else if (likely(__pyx_t_2 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(5, 508, __pyx_L1_error)
  }

  /* "setools/policyrep/selinuxpolicy.pxi":509
 *         """Iterator over all type enforcement rules."""
 *         yield from TERuleIterator.factory(self, &self.handle.p.te_avtab)
 *         yield from FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans)             # <<<<<<<<<<<<<<
 * 
 *         for c in self.conditionals():
*/
  __pyx_t_1 = __pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory(__pyx_cur_scope->__pyx_v_self, (&__pyx_cur_scope->__pyx_v_self->handle->p.filename_trans)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_2 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L5_resume_from_yield_from:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 509, __pyx_L1_error)
  } else if (likely(__pyx_t_2 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(5, 509, __pyx_L1_error)
  }

  /* "setools/policyrep/selinuxpolicy.pxi":511
 *         yield from FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans)
 * 
 *         for c in self.conditionals():             # <<<<<<<<<<<<<<
 *             yield from c.true_rules()
 *             yield from c.false_rules()
*/
  __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_conditionals, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 511, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 511, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 511, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 511, __pyx_L1_error)
          #endif
          if (__pyx_t_5 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_5;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 511, __pyx_L1_error)
          #endif
          if (__pyx_t_5 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5);
        #endif
        ++__pyx_t_5;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 511, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_6(__pyx_t_3);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 511, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":512
 * 
 *         for c in self.conditionals():
 *             yield from c.true_rules()             # <<<<<<<<<<<<<<
 *             yield from c.false_rules()
 * 
*/
    __pyx_t_7 = __pyx_cur_scope->__pyx_v_c;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_true_rules, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 512, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_2 = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_2 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_t_3);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_3;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_6;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 3;
      return __pyx_r;
      __pyx_L8_resume_from_yield_from:;
      __pyx_t_3 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_3);
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_6 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 512, __pyx_L1_error)
    } else if (likely(__pyx_t_2 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(5, 512, __pyx_L1_error)
    }

    /* "setools/policyrep/selinuxpolicy.pxi":513
 *         for c in self.conditionals():
 *             yield from c.true_rules()
 *             yield from c.false_rules()             # <<<<<<<<<<<<<<
 * 
 *     #
*/
    __pyx_t_7 = __pyx_cur_scope->__pyx_v_c;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_false_rules, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 513, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_2 = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_2 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_t_3);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_3;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_6;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 4;
      return __pyx_r;
      __pyx_L9_resume_from_yield_from:;
      __pyx_t_3 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_3);
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_6 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 513, __pyx_L1_error)
    } else if (likely(__pyx_t_2 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(5, 513, __pyx_L1_error)
    }

    /* "setools/policyrep/selinuxpolicy.pxi":511
 *         yield from FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans)
 * 
 *         for c in self.conditionals():             # <<<<<<<<<<<<<<
 *             yield from c.true_rules()
 *             yield from c.false_rules()
*/
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/selinuxpolicy.pxi":506
 *                                RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
 *     def terules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all type enforcement rules."""
 *         yield from TERuleIterator.factory(self, &self.handle.p.te_avtab)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("terules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_76generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":518
 *     # Constraints iterators
 *     #
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_75constraints(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_74constraints, "Iterator over all constraints (regular and MLS).");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_75constraints = {"constraints", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_75constraints, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_74constraints};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_75constraints(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("constraints (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("constraints", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("constraints", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_74constraints(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_74constraints(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("constraints", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_22_constraints(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 518, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_76generator6, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_constraints, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_constraints, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 518, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.constraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_76generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  __Pyx_PySendResult __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("constraints", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield_from;
    case 2: goto __pyx_L7_resume_from_yield_from;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(5, 518, __pyx_L1_error)
  }

  /* "setools/policyrep/selinuxpolicy.pxi":520
 *     def constraints(self):
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():             # <<<<<<<<<<<<<<
 *             yield from c.constraints()
 *             yield from c.validatetrans()
*/
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_classes, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 520, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 520, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 520, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 520, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 520, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 520, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 520, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":521
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():
 *             yield from c.constraints()             # <<<<<<<<<<<<<<
 *             yield from c.validatetrans()
 * 
*/
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_c;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_constraints, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 521, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L6_resume_from_yield_from:;
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 521, __pyx_L1_error)
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(5, 521, __pyx_L1_error)
    }

    /* "setools/policyrep/selinuxpolicy.pxi":522
 *         for c in self.classes():
 *             yield from c.constraints()
 *             yield from c.validatetrans()             # <<<<<<<<<<<<<<
 * 
 *     #
*/
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_c;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_validatetrans, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 522, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 2;
      return __pyx_r;
      __pyx_L7_resume_from_yield_from:;
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 522, __pyx_L1_error)
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(5, 522, __pyx_L1_error)
    }

    /* "setools/policyrep/selinuxpolicy.pxi":520
 *     def constraints(self):
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():             # <<<<<<<<<<<<<<
 *             yield from c.constraints()
 *             yield from c.validatetrans()
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/selinuxpolicy.pxi":518
 *     # Constraints iterators
 *     #
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("constraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":527
 *     # In-policy Labeling statement iterators
 *     #
 *     def fs_uses(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all fs_use_* statements."""
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_78fs_uses(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_77fs_uses, "Iterator over all fs_use_* statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_78fs_uses = {"fs_uses", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_78fs_uses, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_77fs_uses};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_78fs_uses(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fs_uses (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("fs_uses", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("fs_uses", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_77fs_uses(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_77fs_uses(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fs_uses", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":529
 *     def fs_uses(self):
 *         """Iterator over all fs_use_* statements."""
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])             # <<<<<<<<<<<<<<
 * 
 *     def genfscons(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_13FSUseIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_FSUSE])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":527
 *     # In-policy Labeling statement iterators
 *     #
 *     def fs_uses(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all fs_use_* statements."""
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.fs_uses", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":531
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])
 * 
 *     def genfscons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all genfscon statements."""
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_80genfscons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_79genfscons, "Iterator over all genfscon statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_80genfscons = {"genfscons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_80genfscons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_79genfscons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_80genfscons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genfscons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("genfscons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("genfscons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_79genfscons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_79genfscons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genfscons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":533
 *     def genfscons(self):
 *         """Iterator over all genfscon statements."""
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)             # <<<<<<<<<<<<<<
 * 
 *     def ibendportcons(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_16GenfsconIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.genfs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":531
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])
 * 
 *     def genfscons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all genfscon statements."""
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.genfscons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":535
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)
 * 
 *     def ibendportcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ibendportcon statements."""
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_82ibendportcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_81ibendportcons, "Iterator over all ibendportcon statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_82ibendportcons = {"ibendportcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_82ibendportcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_81ibendportcons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_82ibendportcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ibendportcons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("ibendportcons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("ibendportcons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_81ibendportcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_81ibendportcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ibendportcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":537
 *     def ibendportcons(self):
 *         """Iterator over all ibendportcon statements."""
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])             # <<<<<<<<<<<<<<
 * 
 *     def ibpkeycons(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_20IbendportconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_IBENDPORT])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":535
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)
 * 
 *     def ibendportcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ibendportcon statements."""
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ibendportcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":539
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])
 * 
 *     def ibpkeycons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ibpkeycon statements."""
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_84ibpkeycons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_83ibpkeycons, "Iterator over all ibpkeycon statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_84ibpkeycons = {"ibpkeycons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_84ibpkeycons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_83ibpkeycons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_84ibpkeycons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ibpkeycons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("ibpkeycons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("ibpkeycons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_83ibpkeycons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_83ibpkeycons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ibpkeycons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":541
 *     def ibpkeycons(self):
 *         """Iterator over all ibpkeycon statements."""
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])             # <<<<<<<<<<<<<<
 * 
 *     def initialsids(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_17IbpkeyconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_IBPKEY])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":539
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])
 * 
 *     def ibpkeycons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ibpkeycon statements."""
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ibpkeycons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":543
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])
 * 
 *     def initialsids(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all initial SID statements."""
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_86initialsids(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_85initialsids, "Iterator over all initial SID statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_86initialsids = {"initialsids", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_86initialsids, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_85initialsids};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_86initialsids(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialsids (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("initialsids", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("initialsids", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_85initialsids(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_85initialsids(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("initialsids", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":545
 *     def initialsids(self):
 *         """Iterator over all initial SID statements."""
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])             # <<<<<<<<<<<<<<
 * 
 *     def netifcons(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_18InitialSIDIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_ISID])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":543
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])
 * 
 *     def initialsids(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all initial SID statements."""
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.initialsids", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":547
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])
 * 
 *     def netifcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all netifcon statements."""
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_88netifcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_87netifcons, "Iterator over all netifcon statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_88netifcons = {"netifcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_88netifcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_87netifcons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_88netifcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("netifcons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("netifcons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("netifcons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_87netifcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_87netifcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("netifcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":549
 *     def netifcons(self):
 *         """Iterator over all netifcon statements."""
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])             # <<<<<<<<<<<<<<
 * 
 *     def nodecons(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_16NetifconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_NETIF])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":547
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])
 * 
 *     def netifcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all netifcon statements."""
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.netifcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":551
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])
 * 
 *     def nodecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all nodecon statements."""
 *         return itertools.chain(NodeconIterator.factory(self,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_90nodecons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_89nodecons, "Iterator over all nodecon statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_90nodecons = {"nodecons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_90nodecons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_89nodecons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_90nodecons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nodecons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("nodecons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("nodecons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_89nodecons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_89nodecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nodecons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":553
 *     def nodecons(self):
 *         """Iterator over all nodecon statements."""
 *         return itertools.chain(NodeconIterator.factory(self,             # <<<<<<<<<<<<<<
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE],
 *                                                        NodeconIPVersion.ipv4),
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 553, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_chain); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 553, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":555
 *         return itertools.chain(NodeconIterator.factory(self,
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE],
 *                                                        NodeconIPVersion.ipv4),             # <<<<<<<<<<<<<<
 *                                NodeconIterator.factory(self,
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE6],
*/
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_NodeconIPVersion); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ipv4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":553
 *     def nodecons(self):
 *         """Iterator over all nodecon statements."""
 *         return itertools.chain(NodeconIterator.factory(self,             # <<<<<<<<<<<<<<
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE],
 *                                                        NodeconIPVersion.ipv4),
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_15NodeconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_NODE]), __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 553, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":558
 *                                NodeconIterator.factory(self,
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE6],
 *                                                        NodeconIPVersion.ipv6))             # <<<<<<<<<<<<<<
 * 
 *     def portcons(self):
*/
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_NodeconIPVersion); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ipv6); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":556
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE],
 *                                                        NodeconIPVersion.ipv4),
 *                                NodeconIterator.factory(self,             # <<<<<<<<<<<<<<
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE6],
 *                                                        NodeconIPVersion.ipv6))
*/
  __pyx_t_5 = __pyx_f_7setools_9policyrep_15NodeconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_NODE6]), __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_7 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_7 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_3, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 553, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":551
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])
 * 
 *     def nodecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all nodecon statements."""
 *         return itertools.chain(NodeconIterator.factory(self,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.nodecons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":560
 *                                                        NodeconIPVersion.ipv6))
 * 
 *     def portcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all portcon statements."""
 *         return PortconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_PORT])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_92portcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_91portcons, "Iterator over all portcon statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_92portcons = {"portcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_92portcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_91portcons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_92portcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("portcons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("portcons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("portcons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_91portcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_91portcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("portcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":562
 *     def portcons(self):
 *         """Iterator over all portcon statements."""
 *         return PortconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_PORT])             # <<<<<<<<<<<<<<
 * 
 *     #
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_15PortconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_PORT])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":560
 *                                                        NodeconIPVersion.ipv6))
 * 
 *     def portcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all portcon statements."""
 *         return PortconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_PORT])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.portcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":567
 *     # Xen labeling iterators
 *     #
 *     def devicetreecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all devicetreecon statements."""
 *         return DevicetreeconIterator.factory(self,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_94devicetreecons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_93devicetreecons, "Iterator over all devicetreecon statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_94devicetreecons = {"devicetreecons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_94devicetreecons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_93devicetreecons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_94devicetreecons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("devicetreecons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("devicetreecons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("devicetreecons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_93devicetreecons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_93devicetreecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("devicetreecons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":569
 *     def devicetreecons(self):
 *         """Iterator over all devicetreecon statements."""
 *         return DevicetreeconIterator.factory(self,             # <<<<<<<<<<<<<<
 *                                              self.handle.p.ocontexts[sepol.OCON_XEN_DEVICETREE])
 * 
*/
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/selinuxpolicy.pxi":570
 *         """Iterator over all devicetreecon statements."""
 *         return DevicetreeconIterator.factory(self,
 *                                              self.handle.p.ocontexts[sepol.OCON_XEN_DEVICETREE])             # <<<<<<<<<<<<<<
 * 
 *     def iomemcons(self):
*/
  __pyx_t_1 = __pyx_f_7setools_9policyrep_21DevicetreeconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_XEN_DEVICETREE])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":567
 *     # Xen labeling iterators
 *     #
 *     def devicetreecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all devicetreecon statements."""
 *         return DevicetreeconIterator.factory(self,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.devicetreecons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":572
 *                                              self.handle.p.ocontexts[sepol.OCON_XEN_DEVICETREE])
 * 
 *     def iomemcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all iomemcon statements."""
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_96iomemcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_95iomemcons, "Iterator over all iomemcon statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_96iomemcons = {"iomemcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_96iomemcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_95iomemcons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_96iomemcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("iomemcons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("iomemcons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("iomemcons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_95iomemcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_95iomemcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("iomemcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":574
 *     def iomemcons(self):
 *         """Iterator over all iomemcon statements."""
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])             # <<<<<<<<<<<<<<
 * 
 *     def ioportcons(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_16IomemconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_XEN_IOMEM])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":572
 *                                              self.handle.p.ocontexts[sepol.OCON_XEN_DEVICETREE])
 * 
 *     def iomemcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all iomemcon statements."""
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.iomemcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":576
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])
 * 
 *     def ioportcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ioportcon statements."""
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_98ioportcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_97ioportcons, "Iterator over all ioportcon statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_98ioportcons = {"ioportcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_98ioportcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_97ioportcons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_98ioportcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ioportcons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("ioportcons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("ioportcons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_97ioportcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_97ioportcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ioportcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":578
 *     def ioportcons(self):
 *         """Iterator over all ioportcon statements."""
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])             # <<<<<<<<<<<<<<
 * 
 *     def pcidevicecons(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_17IoportconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_XEN_IOPORT])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":576
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])
 * 
 *     def ioportcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ioportcon statements."""
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ioportcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":580
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])
 * 
 *     def pcidevicecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all pcidevicecon statements."""
 *         return PcideviceconIterator.factory(self,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_100pcidevicecons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_99pcidevicecons, "Iterator over all pcidevicecon statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_100pcidevicecons = {"pcidevicecons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_100pcidevicecons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_99pcidevicecons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_100pcidevicecons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pcidevicecons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("pcidevicecons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("pcidevicecons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_99pcidevicecons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_99pcidevicecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pcidevicecons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":582
 *     def pcidevicecons(self):
 *         """Iterator over all pcidevicecon statements."""
 *         return PcideviceconIterator.factory(self,             # <<<<<<<<<<<<<<
 *                                             self.handle.p.ocontexts[sepol.OCON_XEN_PCIDEVICE])
 * 
*/
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/selinuxpolicy.pxi":583
 *         """Iterator over all pcidevicecon statements."""
 *         return PcideviceconIterator.factory(self,
 *                                             self.handle.p.ocontexts[sepol.OCON_XEN_PCIDEVICE])             # <<<<<<<<<<<<<<
 * 
 *     def pirqcons(self):
*/
  __pyx_t_1 = __pyx_f_7setools_9policyrep_20PcideviceconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_XEN_PCIDEVICE])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":580
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])
 * 
 *     def pcidevicecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all pcidevicecon statements."""
 *         return PcideviceconIterator.factory(self,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.pcidevicecons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":585
 *                                             self.handle.p.ocontexts[sepol.OCON_XEN_PCIDEVICE])
 * 
 *     def pirqcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all pirqcon statements."""
 *         return PirqconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_PIRQ])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_102pirqcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13SELinuxPolicy_101pirqcons, "Iterator over all pirqcon statements.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_102pirqcons = {"pirqcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_102pirqcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_101pirqcons};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_102pirqcons(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pirqcons (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("pirqcons", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("pirqcons", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_101pirqcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_101pirqcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pirqcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":587
 *     def pirqcons(self):
 *         """Iterator over all pirqcon statements."""
 *         return PirqconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_PIRQ])             # <<<<<<<<<<<<<<
 * 
 *     #
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_15PirqconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_XEN_PIRQ])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":585
 *                                             self.handle.p.ocontexts[sepol.OCON_XEN_PCIDEVICE])
 * 
 *     def pirqcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all pirqcon statements."""
 *         return PirqconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_PIRQ])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.pirqcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":592
 *     # Low-level methods
 *     #
 *     cdef inline sepol.cond_bool_datum_t* boolean_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.bool_val_to_struct[value]
*/

static CYTHON_INLINE cond_bool_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  cond_bool_datum_t *__pyx_r;

  /* "setools/policyrep/selinuxpolicy.pxi":594
 *     cdef inline sepol.cond_bool_datum_t* boolean_value_to_datum(self, size_t value):
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.bool_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str boolean_value_to_name(self, size_t value):
*/
  __pyx_r = (__pyx_v_self->handle->p.bool_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":592
 *     # Low-level methods
 *     #
 *     cdef inline sepol.cond_bool_datum_t* boolean_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.bool_val_to_struct[value]
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":596
 *         return self.handle.p.bool_val_to_struct[value]
 * 
 *     cdef inline str boolean_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the boolean by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_BOOLS][value])
*/

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("boolean_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":598
 *     cdef inline str boolean_value_to_name(self, size_t value):
 *         """Return the name of the boolean by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_BOOLS][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.cat_datum_t* category_value_to_datum(self, size_t value):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_BOOLS])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(5, 598, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":596
 *         return self.handle.p.bool_val_to_struct[value]
 * 
 *     cdef inline str boolean_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the boolean by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_BOOLS][value])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.boolean_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":600
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_BOOLS][value])
 * 
 *     cdef inline sepol.cat_datum_t* category_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the category datum for the specified category value."""
 *         return self.cat_val_to_struct[value]
*/

static CYTHON_INLINE cat_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  cat_datum_t *__pyx_r;

  /* "setools/policyrep/selinuxpolicy.pxi":602
 *     cdef inline sepol.cat_datum_t* category_value_to_datum(self, size_t value):
 *         """Return the category datum for the specified category value."""
 *         return self.cat_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str category_value_to_name(self, size_t value):
*/
  __pyx_r = (__pyx_v_self->cat_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":600
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_BOOLS][value])
 * 
 *     cdef inline sepol.cat_datum_t* category_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the category datum for the specified category value."""
 *         return self.cat_val_to_struct[value]
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":604
 *         return self.cat_val_to_struct[value]
 * 
 *     cdef inline str category_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the category by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CATS][value])
*/

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("category_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":606
 *     cdef inline str category_value_to_name(self, size_t value):
 *         """Return the name of the category by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CATS][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.class_datum_t* class_value_to_datum(self, size_t value):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_CATS])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(5, 606, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":604
 *         return self.cat_val_to_struct[value]
 * 
 *     cdef inline str category_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the category by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CATS][value])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.category_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":608
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CATS][value])
 * 
 *     cdef inline sepol.class_datum_t* class_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.class_val_to_struct[value]
*/

static CYTHON_INLINE class_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  class_datum_t *__pyx_r;

  /* "setools/policyrep/selinuxpolicy.pxi":610
 *     cdef inline sepol.class_datum_t* class_value_to_datum(self, size_t value):
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.class_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str class_value_to_name(self, size_t value):
*/
  __pyx_r = (__pyx_v_self->handle->p.class_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":608
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CATS][value])
 * 
 *     cdef inline sepol.class_datum_t* class_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.class_val_to_struct[value]
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":612
 *         return self.handle.p.class_val_to_struct[value]
 * 
 *     cdef inline str class_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the class by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CLASSES][value])
*/

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("class_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":614
 *     cdef inline str class_value_to_name(self, size_t value):
 *         """Return the name of the class by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CLASSES][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str common_value_to_name(self, size_t value):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_CLASSES])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(5, 614, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":612
 *         return self.handle.p.class_val_to_struct[value]
 * 
 *     cdef inline str class_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the class by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CLASSES][value])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.class_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":616
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CLASSES][value])
 * 
 *     cdef inline str common_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the common by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_COMMONS][value])
*/

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_common_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("common_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":618
 *     cdef inline str common_value_to_name(self, size_t value):
 *         """Return the name of the common by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_COMMONS][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.level_datum_t* level_value_to_datum(self, size_t value):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_COMMONS])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(5, 618, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":616
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CLASSES][value])
 * 
 *     cdef inline str common_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the common by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_COMMONS][value])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.common_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":620
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_COMMONS][value])
 * 
 *     cdef inline sepol.level_datum_t* level_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the level datum for the specified level value."""
 *         return self.level_val_to_struct[value]
*/

static CYTHON_INLINE level_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  level_datum_t *__pyx_r;

  /* "setools/policyrep/selinuxpolicy.pxi":622
 *     cdef inline sepol.level_datum_t* level_value_to_datum(self, size_t value):
 *         """Return the level datum for the specified level value."""
 *         return self.level_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str level_value_to_name(self, size_t value):
*/
  __pyx_r = (__pyx_v_self->level_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":620
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_COMMONS][value])
 * 
 *     cdef inline sepol.level_datum_t* level_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the level datum for the specified level value."""
 *         return self.level_val_to_struct[value]
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":624
 *         return self.level_val_to_struct[value]
 * 
 *     cdef inline str level_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the level by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_LEVELS][value])
*/

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("level_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":626
 *     cdef inline str level_value_to_name(self, size_t value):
 *         """Return the name of the level by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_LEVELS][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.role_datum_t* role_value_to_datum(self, size_t value):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_LEVELS])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(5, 626, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":624
 *         return self.level_val_to_struct[value]
 * 
 *     cdef inline str level_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the level by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_LEVELS][value])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.level_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":628
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_LEVELS][value])
 * 
 *     cdef inline sepol.role_datum_t* role_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the role datum for the specified role value."""
 *         return self.handle.p.role_val_to_struct[value]
*/

static CYTHON_INLINE role_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  role_datum_t *__pyx_r;

  /* "setools/policyrep/selinuxpolicy.pxi":630
 *     cdef inline sepol.role_datum_t* role_value_to_datum(self, size_t value):
 *         """Return the role datum for the specified role value."""
 *         return self.handle.p.role_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str role_value_to_name(self, size_t value):
*/
  __pyx_r = (__pyx_v_self->handle->p.role_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":628
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_LEVELS][value])
 * 
 *     cdef inline sepol.role_datum_t* role_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the role datum for the specified role value."""
 *         return self.handle.p.role_val_to_struct[value]
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":632
 *         return self.handle.p.role_val_to_struct[value]
 * 
 *     cdef inline str role_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the role by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_ROLES][value])
*/

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("role_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":634
 *     cdef inline str role_value_to_name(self, size_t value):
 *         """Return the name of the role by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_ROLES][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.type_datum_t* type_value_to_datum(self, size_t value):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_ROLES])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(5, 634, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":632
 *         return self.handle.p.role_val_to_struct[value]
 * 
 *     cdef inline str role_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the role by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_ROLES][value])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.role_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":636
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_ROLES][value])
 * 
 *     cdef inline sepol.type_datum_t* type_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the type datum for the specified type value."""
 *         return self.handle.p.type_val_to_struct[value]
*/

static CYTHON_INLINE type_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  type_datum_t *__pyx_r;

  /* "setools/policyrep/selinuxpolicy.pxi":638
 *     cdef inline sepol.type_datum_t* type_value_to_datum(self, size_t value):
 *         """Return the type datum for the specified type value."""
 *         return self.handle.p.type_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str type_value_to_name(self, size_t value):
*/
  __pyx_r = (__pyx_v_self->handle->p.type_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":636
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_ROLES][value])
 * 
 *     cdef inline sepol.type_datum_t* type_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the type datum for the specified type value."""
 *         return self.handle.p.type_val_to_struct[value]
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":640
 *         return self.handle.p.type_val_to_struct[value]
 * 
 *     cdef inline str type_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the type/attribute by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_TYPES][value])
*/

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":642
 *     cdef inline str type_value_to_name(self, size_t value):
 *         """Return the name of the type/attribute by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_TYPES][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.user_datum_t* user_value_to_datum(self, size_t value):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_TYPES])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(5, 642, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":640
 *         return self.handle.p.type_val_to_struct[value]
 * 
 *     cdef inline str type_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the type/attribute by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_TYPES][value])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":644
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_TYPES][value])
 * 
 *     cdef inline sepol.user_datum_t* user_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the user datum for the specified user value."""
 *         return self.handle.p.user_val_to_struct[value]
*/

static CYTHON_INLINE user_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  user_datum_t *__pyx_r;

  /* "setools/policyrep/selinuxpolicy.pxi":646
 *     cdef inline sepol.user_datum_t* user_value_to_datum(self, size_t value):
 *         """Return the user datum for the specified user value."""
 *         return self.handle.p.user_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str user_value_to_name(self, size_t value):
*/
  __pyx_r = (__pyx_v_self->handle->p.user_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":644
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_TYPES][value])
 * 
 *     cdef inline sepol.user_datum_t* user_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the user datum for the specified user value."""
 *         return self.handle.p.user_val_to_struct[value]
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":648
 *         return self.handle.p.user_val_to_struct[value]
 * 
 *     cdef inline str user_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the user by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_USERS][value])
*/

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("user_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":650
 *     cdef inline str user_value_to_name(self, size_t value):
 *         """Return the name of the user by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_USERS][value])             # <<<<<<<<<<<<<<
 * 
 *     #
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_USERS])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(5, 650, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":648
 *         return self.handle.p.user_val_to_struct[value]
 * 
 *     cdef inline str user_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the user by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_USERS][value])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.user_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":655
 *     # Internal methods
 *     #
 *     cdef _load_policy(self, str filename):             # <<<<<<<<<<<<<<
 *         """Load the specified policy."""
 *         cdef:
*/

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_policy(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_filename) {
  sepol_policy_file_t *__pyx_v_pfile;
  FILE *__pyx_v_infile;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[3];
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_t_7;
  char const *__pyx_t_8;
  char *__pyx_t_9;
  PyObject *__pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12[5];
  PyObject *__pyx_t_13 = NULL;
  unsigned int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_policy", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":658
 *         """Load the specified policy."""
 *         cdef:
 *             sepol.sepol_policy_file_t *pfile = NULL             # <<<<<<<<<<<<<<
 *             FILE *infile = NULL
 * 
*/
  __pyx_v_pfile = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":659
 *         cdef:
 *             sepol.sepol_policy_file_t *pfile = NULL
 *             FILE *infile = NULL             # <<<<<<<<<<<<<<
 * 
 *         self.log.info(f"Opening SELinux policy \"{filename}\"")
*/
  __pyx_v_infile = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":661
 *             FILE *infile = NULL
 * 
 *         self.log.info(f"Opening SELinux policy \"{filename}\"")             # <<<<<<<<<<<<<<
 * 
 *         self.sh = sepol.sepol_handle_create()
*/
  __pyx_t_2 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_filename); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_Opening_SELinux_policy;
  __pyx_t_4[1] = __pyx_t_3;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u__16;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, 24 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_info, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 661, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":663
 *         self.log.info(f"Opening SELinux policy \"{filename}\"")
 * 
 *         self.sh = sepol.sepol_handle_create()             # <<<<<<<<<<<<<<
 *         if self.sh == NULL:
 *             raise MemoryError
*/
  __pyx_v_self->sh = sepol_handle_create();

  /* "setools/policyrep/selinuxpolicy.pxi":664
 * 
 *         self.sh = sepol.sepol_handle_create()
 *         if self.sh == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  __pyx_t_7 = (__pyx_v_self->sh == NULL);
  if (unlikely(__pyx_t_7)) {

    /* "setools/policyrep/selinuxpolicy.pxi":665
 *         self.sh = sepol.sepol_handle_create()
 *         if self.sh == NULL:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         sepol.sepol_msg_set_callback(self.sh, <sepol.msg_callback>sepol_logging_callback, self.handle)
*/
    PyErr_NoMemory(); __PYX_ERR(5, 665, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":664
 * 
 *         self.sh = sepol.sepol_handle_create()
 *         if self.sh == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":667
 *             raise MemoryError
 * 
 *         sepol.sepol_msg_set_callback(self.sh, <sepol.msg_callback>sepol_logging_callback, self.handle)             # <<<<<<<<<<<<<<
 * 
 *         if sepol.sepol_policydb_create(&self.handle) < 0:
*/
  sepol_msg_set_callback(__pyx_v_self->sh, ((__pyx_t_5sepol_msg_callback)__pyx_f_7setools_9policyrep_sepol_logging_callback), __pyx_v_self->handle);

  /* "setools/policyrep/selinuxpolicy.pxi":669
 *         sepol.sepol_msg_set_callback(self.sh, <sepol.msg_callback>sepol_logging_callback, self.handle)
 * 
 *         if sepol.sepol_policydb_create(&self.handle) < 0:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  __pyx_t_7 = (sepol_policydb_create((&__pyx_v_self->handle)) < 0);
  if (unlikely(__pyx_t_7)) {

    /* "setools/policyrep/selinuxpolicy.pxi":670
 * 
 *         if sepol.sepol_policydb_create(&self.handle) < 0:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         if sepol.sepol_policy_file_create(&pfile) < 0:
*/
    PyErr_NoMemory(); __PYX_ERR(5, 670, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":669
 *         sepol.sepol_msg_set_callback(self.sh, <sepol.msg_callback>sepol_logging_callback, self.handle)
 * 
 *         if sepol.sepol_policydb_create(&self.handle) < 0:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":672
 *             raise MemoryError
 * 
 *         if sepol.sepol_policy_file_create(&pfile) < 0:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  __pyx_t_7 = (sepol_policy_file_create((&__pyx_v_pfile)) < 0);
  if (unlikely(__pyx_t_7)) {

    /* "setools/policyrep/selinuxpolicy.pxi":673
 * 
 *         if sepol.sepol_policy_file_create(&pfile) < 0:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         infile = fopen(filename, "rb")
*/
    PyErr_NoMemory(); __PYX_ERR(5, 673, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":672
 *             raise MemoryError
 * 
 *         if sepol.sepol_policy_file_create(&pfile) < 0:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":675
 *             raise MemoryError
 * 
 *         infile = fopen(filename, "rb")             # <<<<<<<<<<<<<<
 *         if infile == NULL:
 *             PyErr_SetFromErrnoWithFilename(OSError, filename)
*/
  __pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_filename); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(5, 675, __pyx_L1_error)
  __pyx_v_infile = fopen(__pyx_t_8, __pyx_k_rb);

  /* "setools/policyrep/selinuxpolicy.pxi":676
 * 
 *         infile = fopen(filename, "rb")
 *         if infile == NULL:             # <<<<<<<<<<<<<<
 *             PyErr_SetFromErrnoWithFilename(OSError, filename)
 * 
*/
  __pyx_t_7 = (__pyx_v_infile == NULL);
  if (__pyx_t_7) {

    /* "setools/policyrep/selinuxpolicy.pxi":677
 *         infile = fopen(filename, "rb")
 *         if infile == NULL:
 *             PyErr_SetFromErrnoWithFilename(OSError, filename)             # <<<<<<<<<<<<<<
 * 
 *         sepol.sepol_policy_file_set_handle(pfile, self.sh)
*/
    __pyx_t_9 = __Pyx_PyObject_AsWritableString(__pyx_v_filename); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) __PYX_ERR(5, 677, __pyx_L1_error)
    __pyx_t_10 = PyErr_SetFromErrnoWithFilename(((PyObject *)(((PyTypeObject*)PyExc_OSError))), __pyx_t_9); if (unlikely(__pyx_t_10 == ((void *)NULL))) __PYX_ERR(5, 677, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":676
 * 
 *         infile = fopen(filename, "rb")
 *         if infile == NULL:             # <<<<<<<<<<<<<<
 *             PyErr_SetFromErrnoWithFilename(OSError, filename)
 * 
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":679
 *             PyErr_SetFromErrnoWithFilename(OSError, filename)
 * 
 *         sepol.sepol_policy_file_set_handle(pfile, self.sh)             # <<<<<<<<<<<<<<
 *         sepol.sepol_policy_file_set_fp(pfile, infile)
 * 
*/
  sepol_policy_file_set_handle(__pyx_v_pfile, __pyx_v_self->sh);

  /* "setools/policyrep/selinuxpolicy.pxi":680
 * 
 *         sepol.sepol_policy_file_set_handle(pfile, self.sh)
 *         sepol.sepol_policy_file_set_fp(pfile, infile)             # <<<<<<<<<<<<<<
 * 
 *         if sepol.sepol_policydb_read(self.handle, pfile) < 0:
*/
  sepol_policy_file_set_fp(__pyx_v_pfile, __pyx_v_infile);

  /* "setools/policyrep/selinuxpolicy.pxi":682
 *         sepol.sepol_policy_file_set_fp(pfile, infile)
 * 
 *         if sepol.sepol_policydb_read(self.handle, pfile) < 0:             # <<<<<<<<<<<<<<
 *             raise InvalidPolicy(f"Invalid policy: {filename}. A binary policy must be specified. "
 *                                 f"(use e.g. policy.{sepol.sepol_policy_kern_vers_max()} or "
*/
  __pyx_t_7 = (sepol_policydb_read(__pyx_v_self->handle, __pyx_v_pfile) < 0);
  if (unlikely(__pyx_t_7)) {

    /* "setools/policyrep/selinuxpolicy.pxi":683
 * 
 *         if sepol.sepol_policydb_read(self.handle, pfile) < 0:
 *             raise InvalidPolicy(f"Invalid policy: {filename}. A binary policy must be specified. "             # <<<<<<<<<<<<<<
 *                                 f"(use e.g. policy.{sepol.sepol_policy_kern_vers_max()} or "
 *                                 "sepolicy) Source policies are not supported.")
*/
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_InvalidPolicy); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 683, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_filename); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 683, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "setools/policyrep/selinuxpolicy.pxi":684
 *         if sepol.sepol_policydb_read(self.handle, pfile) < 0:
 *             raise InvalidPolicy(f"Invalid policy: {filename}. A binary policy must be specified. "
 *                                 f"(use e.g. policy.{sepol.sepol_policy_kern_vers_max()} or "             # <<<<<<<<<<<<<<
 *                                 "sepolicy) Source policies are not supported.")
 * 
*/
    __pyx_t_11 = __Pyx_PyUnicode_From_int(sepol_policy_kern_vers_max(), 0, ' ', 'd'); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_policy;
    __pyx_t_12[1] = __pyx_t_3;
    __pyx_t_12[2] = __pyx_mstate_global->__pyx_kp_u_A_binary_policy_must_be_specifi;
    __pyx_t_12[3] = __pyx_t_11;
    __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_or_sepolicy_Source_policies_are;

    /* "setools/policyrep/selinuxpolicy.pxi":683
 * 
 *         if sepol.sepol_policydb_read(self.handle, pfile) < 0:
 *             raise InvalidPolicy(f"Invalid policy: {filename}. A binary policy must be specified. "             # <<<<<<<<<<<<<<
 *                                 f"(use e.g. policy.{sepol.sepol_policy_kern_vers_max()} or "
 *                                 "sepolicy) Source policies are not supported.")
*/
    __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_12, 5, 16 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 54 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 48, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
    if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 683, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_13};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 683, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(5, 683, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":682
 *         sepol.sepol_policy_file_set_fp(pfile, infile)
 * 
 *         if sepol.sepol_policydb_read(self.handle, pfile) < 0:             # <<<<<<<<<<<<<<
 *             raise InvalidPolicy(f"Invalid policy: {filename}. A binary policy must be specified. "
 *                                 f"(use e.g. policy.{sepol.sepol_policy_kern_vers_max()} or "
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":687
 *                                 "sepolicy) Source policies are not supported.")
 * 
 *         fclose(infile)             # <<<<<<<<<<<<<<
 *         sepol.sepol_policy_file_free(pfile)
 * 
*/
  (void)(fclose(__pyx_v_infile));

  /* "setools/policyrep/selinuxpolicy.pxi":688
 * 
 *         fclose(infile)
 *         sepol.sepol_policy_file_free(pfile)             # <<<<<<<<<<<<<<
 * 
 *         #
*/
  sepol_policy_file_free(__pyx_v_pfile);

  /* "setools/policyrep/selinuxpolicy.pxi":693
 *         # Load policy properties
 *         #
 *         self.handle_unknown = HandleUnknown(self.handle.p.handle_unknown)             # <<<<<<<<<<<<<<
 *         self.target_platform = PolicyTarget(self.handle.p.target_platform)
 *         self.version = self.handle.p.policyvers
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_HandleUnknown); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_5 = __Pyx_PyLong_From_unsigned_int(__pyx_v_self->handle->p.handle_unknown); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_13);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->handle_unknown);
  __Pyx_DECREF(__pyx_v_self->handle_unknown);
  __pyx_v_self->handle_unknown = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":694
 *         #
 *         self.handle_unknown = HandleUnknown(self.handle.p.handle_unknown)
 *         self.target_platform = PolicyTarget(self.handle.p.target_platform)             # <<<<<<<<<<<<<<
 *         self.version = self.handle.p.policyvers
 *         self.mls = <bint>self.handle.p.mls
*/
  __pyx_t_13 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PolicyTarget); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_self->handle->p.target_platform); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_13);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 694, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->target_platform);
  __Pyx_DECREF(__pyx_v_self->target_platform);
  __pyx_v_self->target_platform = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":695
 *         self.handle_unknown = HandleUnknown(self.handle.p.handle_unknown)
 *         self.target_platform = PolicyTarget(self.handle.p.target_platform)
 *         self.version = self.handle.p.policyvers             # <<<<<<<<<<<<<<
 *         self.mls = <bint>self.handle.p.mls
 * 
*/
  __pyx_t_14 = __pyx_v_self->handle->p.policyvers;
  __pyx_v_self->version = __pyx_t_14;

  /* "setools/policyrep/selinuxpolicy.pxi":696
 *         self.target_platform = PolicyTarget(self.handle.p.target_platform)
 *         self.version = self.handle.p.policyvers
 *         self.mls = <bint>self.handle.p.mls             # <<<<<<<<<<<<<<
 * 
 *         #
*/
  __pyx_v_self->mls = (__pyx_v_self->handle->p.mls != 0);

  /* "setools/policyrep/selinuxpolicy.pxi":701
 *         # (Re)create data structures
 *         #
 *         if self.handle.p.attr_type_map != NULL:             # <<<<<<<<<<<<<<
 *             self._rebuild_attrs_from_map()
 *             # if source policies are supported in the
*/
  __pyx_t_7 = (__pyx_v_self->handle->p.attr_type_map != NULL);
  if (__pyx_t_7) {

    /* "setools/policyrep/selinuxpolicy.pxi":702
 *         #
 *         if self.handle.p.attr_type_map != NULL:
 *             self._rebuild_attrs_from_map()             # <<<<<<<<<<<<<<
 *             # if source policies are supported in the
 *             # future this should only run on the
*/
    __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_rebuild_attrs_from_map(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 702, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":701
 *         # (Re)create data structures
 *         #
 *         if self.handle.p.attr_type_map != NULL:             # <<<<<<<<<<<<<<
 *             self._rebuild_attrs_from_map()
 *             # if source policies are supported in the
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":708
 *             #self._synthesize_attrs()
 * 
 *         self._set_permissive_flags()             # <<<<<<<<<<<<<<
 * 
 *         if self.mls:
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_set_permissive_flags(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 708, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":710
 *         self._set_permissive_flags()
 * 
 *         if self.mls:             # <<<<<<<<<<<<<<
 *             self._create_mls_val_to_struct()
 * 
*/
  if (__pyx_v_self->mls) {

    /* "setools/policyrep/selinuxpolicy.pxi":711
 * 
 *         if self.mls:
 *             self._create_mls_val_to_struct()             # <<<<<<<<<<<<<<
 * 
 *         #
*/
    __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_create_mls_val_to_struct(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 711, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":710
 *         self._set_permissive_flags()
 * 
 *         if self.mls:             # <<<<<<<<<<<<<<
 *             self._create_mls_val_to_struct()
 * 
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":716
 *         # Create value to alias mappings
 *         #
 *         self._load_type_aliases()             # <<<<<<<<<<<<<<
 * 
 *         if self.mls:
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_type_aliases(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":718
 *         self._load_type_aliases()
 * 
 *         if self.mls:             # <<<<<<<<<<<<<<
 *             self._load_sensitivity_aliases()
 *             self._load_category_aliases()
*/
  if (__pyx_v_self->mls) {

    /* "setools/policyrep/selinuxpolicy.pxi":719
 * 
 *         if self.mls:
 *             self._load_sensitivity_aliases()             # <<<<<<<<<<<<<<
 *             self._load_category_aliases()
 * 
*/
    __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_sensitivity_aliases(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":720
 *         if self.mls:
 *             self._load_sensitivity_aliases()
 *             self._load_category_aliases()             # <<<<<<<<<<<<<<
 * 
 *         self.log.info(f"Successfully opened SELinux policy \"{filename}\"")
*/
    __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_category_aliases(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 720, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":718
 *         self._load_type_aliases()
 * 
 *         if self.mls:             # <<<<<<<<<<<<<<
 *             self._load_sensitivity_aliases()
 *             self._load_category_aliases()
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":722
 *             self._load_category_aliases()
 * 
 *         self.log.info(f"Successfully opened SELinux policy \"{filename}\"")             # <<<<<<<<<<<<<<
 *         self.path = filename
 * 
*/
  __pyx_t_5 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_filename); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_Successfully_opened_SELinux_poli;
  __pyx_t_4[1] = __pyx_t_2;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u__16;
  __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, 36 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_13};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_info, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":723
 * 
 *         self.log.info(f"Successfully opened SELinux policy \"{filename}\"")
 *         self.path = filename             # <<<<<<<<<<<<<<
 * 
 *     cdef _load_running_policy(self):
*/
  __Pyx_INCREF(__pyx_v_filename);
  __Pyx_GIVEREF(__pyx_v_filename);
  __Pyx_GOTREF(__pyx_v_self->path);
  __Pyx_DECREF(__pyx_v_self->path);
  __pyx_v_self->path = __pyx_v_filename;

  /* "setools/policyrep/selinuxpolicy.pxi":655
 *     # Internal methods
 *     #
 *     cdef _load_policy(self, str filename):             # <<<<<<<<<<<<<<
 *         """Load the specified policy."""
 *         cdef:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_policy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":725
 *         self.path = filename
 * 
 *     cdef _load_running_policy(self):             # <<<<<<<<<<<<<<
 *         """Try to load the current running policy."""
 *         cdef:
*/

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_running_policy(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  int __pyx_v_min_ver;
  int __pyx_v_max_ver;
  char const *__pyx_v_base_policy_path;
  char const *__pyx_v_current_policy_path;
  PyObject *__pyx_v_potential_policies = 0;
  long __pyx_v_version;
  PyObject *__pyx_v_filename = NULL;
  PyObject *__pyx_v_err = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6[4];
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  long __pyx_t_10;
  long __pyx_t_11;
  long __pyx_t_12;
  PyObject *__pyx_t_13[3];
  Py_ssize_t __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  int __pyx_t_18;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  int __pyx_t_21;
  char const *__pyx_t_22;
  PyObject *__pyx_t_23 = NULL;
  PyObject *__pyx_t_24 = NULL;
  PyObject *__pyx_t_25 = NULL;
  PyObject *__pyx_t_26 = NULL;
  PyObject *__pyx_t_27 = NULL;
  PyObject *__pyx_t_28 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_running_policy", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":728
 *         """Try to load the current running policy."""
 *         cdef:
 *             int min_ver = sepol.sepol_policy_kern_vers_min()             # <<<<<<<<<<<<<<
 *             int max_ver = sepol.sepol_policy_kern_vers_max()
 *             const char *base_policy_path = selinux.selinux_binary_policy_path()
*/
  __pyx_v_min_ver = sepol_policy_kern_vers_min();

  /* "setools/policyrep/selinuxpolicy.pxi":729
 *         cdef:
 *             int min_ver = sepol.sepol_policy_kern_vers_min()
 *             int max_ver = sepol.sepol_policy_kern_vers_max()             # <<<<<<<<<<<<<<
 *             const char *base_policy_path = selinux.selinux_binary_policy_path()
 *             const char *current_policy_path = selinux.selinux_current_policy_path()
*/
  __pyx_v_max_ver = sepol_policy_kern_vers_max();

  /* "setools/policyrep/selinuxpolicy.pxi":730
 *             int min_ver = sepol.sepol_policy_kern_vers_min()
 *             int max_ver = sepol.sepol_policy_kern_vers_max()
 *             const char *base_policy_path = selinux.selinux_binary_policy_path()             # <<<<<<<<<<<<<<
 *             const char *current_policy_path = selinux.selinux_current_policy_path()
 *             list potential_policies = []
*/
  __pyx_v_base_policy_path = selinux_binary_policy_path();

  /* "setools/policyrep/selinuxpolicy.pxi":731
 *             int max_ver = sepol.sepol_policy_kern_vers_max()
 *             const char *base_policy_path = selinux.selinux_binary_policy_path()
 *             const char *current_policy_path = selinux.selinux_current_policy_path()             # <<<<<<<<<<<<<<
 *             list potential_policies = []
 * 
*/
  __pyx_v_current_policy_path = selinux_current_policy_path();

  /* "setools/policyrep/selinuxpolicy.pxi":732
 *             const char *base_policy_path = selinux.selinux_binary_policy_path()
 *             const char *current_policy_path = selinux.selinux_current_policy_path()
 *             list potential_policies = []             # <<<<<<<<<<<<<<
 * 
 *         self.log.info("Attempting to locate current running policy.")
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_potential_policies = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":734
 *             list potential_policies = []
 * 
 *         self.log.info("Attempting to locate current running policy.")             # <<<<<<<<<<<<<<
 *         self.log.debug(f"SELinuxfs exists: {selinux.selinuxfs_exists()}")
 *         self.log.debug(f"Sepol version range: {min_ver}-{max_ver}")
*/
  __pyx_t_2 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Attempting_to_locate_current_run};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_info, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 734, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":735
 * 
 *         self.log.info("Attempting to locate current running policy.")
 *         self.log.debug(f"SELinuxfs exists: {selinux.selinuxfs_exists()}")             # <<<<<<<<<<<<<<
 *         self.log.debug(f"Sepol version range: {min_ver}-{max_ver}")
 *         self.log.debug(f"Current policy path: {current_policy_path if current_policy_path != NULL else None}")
*/
  __pyx_t_2 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyUnicode_FromBInt_bint(selinuxfs_exists()); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_SELinuxfs_exists, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_debug, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":736
 *         self.log.info("Attempting to locate current running policy.")
 *         self.log.debug(f"SELinuxfs exists: {selinux.selinuxfs_exists()}")
 *         self.log.debug(f"Sepol version range: {min_ver}-{max_ver}")             # <<<<<<<<<<<<<<
 *         self.log.debug(f"Current policy path: {current_policy_path if current_policy_path != NULL else None}")
 *         self.log.debug(f"Binary policy path: {base_policy_path if base_policy_path != NULL else None}")
*/
  __pyx_t_5 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_min_ver, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyUnicode_From_int(__pyx_v_max_ver, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6[0] = __pyx_mstate_global->__pyx_kp_u_Sepol_version_range;
  __pyx_t_6[1] = __pyx_t_2;
  __pyx_t_6[2] = __pyx_mstate_global->__pyx_kp_u__20;
  __pyx_t_6[3] = __pyx_t_4;
  __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_6, 4, 21 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4), 127);
  if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_debug, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":737
 *         self.log.debug(f"SELinuxfs exists: {selinux.selinuxfs_exists()}")
 *         self.log.debug(f"Sepol version range: {min_ver}-{max_ver}")
 *         self.log.debug(f"Current policy path: {current_policy_path if current_policy_path != NULL else None}")             # <<<<<<<<<<<<<<
 *         self.log.debug(f"Binary policy path: {base_policy_path if base_policy_path != NULL else None}")
 * 
*/
  __pyx_t_7 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_7);
  __pyx_t_8 = (__pyx_v_current_policy_path != NULL);
  if (__pyx_t_8) {
    __pyx_t_4 = __Pyx_PyUnicode_FromString(__pyx_v_current_policy_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 737, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __pyx_t_4;
    __pyx_t_4 = 0;
  } else {
    __Pyx_INCREF(Py_None);
    __pyx_t_5 = Py_None;
  }
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Current_policy_path, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_debug, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 737, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":738
 *         self.log.debug(f"Sepol version range: {min_ver}-{max_ver}")
 *         self.log.debug(f"Current policy path: {current_policy_path if current_policy_path != NULL else None}")
 *         self.log.debug(f"Binary policy path: {base_policy_path if base_policy_path != NULL else None}")             # <<<<<<<<<<<<<<
 * 
 *         # first try libselinux for current policy
*/
  __pyx_t_5 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_5);
  __pyx_t_8 = (__pyx_v_base_policy_path != NULL);
  if (__pyx_t_8) {
    __pyx_t_4 = __Pyx_PyUnicode_FromString(__pyx_v_base_policy_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 738, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = __pyx_t_4;
    __pyx_t_4 = 0;
  } else {
    __Pyx_INCREF(Py_None);
    __pyx_t_7 = Py_None;
  }
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Binary_policy_path, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_debug, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 738, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":741
 * 
 *         # first try libselinux for current policy
 *         if current_policy_path != NULL:             # <<<<<<<<<<<<<<
 *             potential_policies.append(current_policy_path)
 * 
*/
  __pyx_t_8 = (__pyx_v_current_policy_path != NULL);
  if (__pyx_t_8) {

    /* "setools/policyrep/selinuxpolicy.pxi":742
 *         # first try libselinux for current policy
 *         if current_policy_path != NULL:
 *             potential_policies.append(current_policy_path)             # <<<<<<<<<<<<<<
 * 
 *         # look through the supported policy versions
*/
    __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_current_policy_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 742, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_potential_policies, __pyx_t_1); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 742, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":741
 * 
 *         # first try libselinux for current policy
 *         if current_policy_path != NULL:             # <<<<<<<<<<<<<<
 *             potential_policies.append(current_policy_path)
 * 
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":745
 * 
 *         # look through the supported policy versions
 *         if base_policy_path != NULL:             # <<<<<<<<<<<<<<
 *             for version in range(max_ver, min_ver - 1, -1):
 *                 potential_policies.append(f"{base_policy_path}.{version}")
*/
  __pyx_t_8 = (__pyx_v_base_policy_path != NULL);
  if (__pyx_t_8) {

    /* "setools/policyrep/selinuxpolicy.pxi":746
 *         # look through the supported policy versions
 *         if base_policy_path != NULL:
 *             for version in range(max_ver, min_ver - 1, -1):             # <<<<<<<<<<<<<<
 *                 potential_policies.append(f"{base_policy_path}.{version}")
 * 
*/
    __pyx_t_10 = (__pyx_v_min_ver - 1);
    __pyx_t_11 = __pyx_t_10;
    for (__pyx_t_12 = __pyx_v_max_ver; __pyx_t_12 > __pyx_t_11; __pyx_t_12-=1) {
      __pyx_v_version = __pyx_t_12;

      /* "setools/policyrep/selinuxpolicy.pxi":747
 *         if base_policy_path != NULL:
 *             for version in range(max_ver, min_ver - 1, -1):
 *                 potential_policies.append(f"{base_policy_path}.{version}")             # <<<<<<<<<<<<<<
 * 
 *         self.log.debug(f"Potential policies: {potential_policies}")
*/
      __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_base_policy_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 747, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyUnicode_From_long(__pyx_v_version, 0, ' ', 'd'); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 747, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_13[0] = __pyx_t_1;
      __pyx_t_13[1] = __pyx_mstate_global->__pyx_kp_u__14;
      __pyx_t_13[2] = __pyx_t_7;
      __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
      if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 747, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_potential_policies, __pyx_t_5); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 747, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":745
 * 
 *         # look through the supported policy versions
 *         if base_policy_path != NULL:             # <<<<<<<<<<<<<<
 *             for version in range(max_ver, min_ver - 1, -1):
 *                 potential_policies.append(f"{base_policy_path}.{version}")
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":749
 *                 potential_policies.append(f"{base_policy_path}.{version}")
 * 
 *         self.log.debug(f"Potential policies: {potential_policies}")             # <<<<<<<<<<<<<<
 *         for filename in potential_policies:
 *             try:
*/
  __pyx_t_7 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_potential_policies, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Potential_policies, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_4};
    __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_debug, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 749, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":750
 * 
 *         self.log.debug(f"Potential policies: {potential_policies}")
 *         for filename in potential_policies:             # <<<<<<<<<<<<<<
 *             try:
 *                 self._load_policy(filename)
*/
  __pyx_t_5 = __pyx_v_potential_policies; __Pyx_INCREF(__pyx_t_5);
  __pyx_t_14 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 750, __pyx_L1_error)
      #endif
      if (__pyx_t_14 >= __pyx_temp) break;
    }
    __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_14, __Pyx_ReferenceSharing_OwnStrongReference);
    ++__pyx_t_14;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_filename, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":751
 *         self.log.debug(f"Potential policies: {potential_policies}")
 *         for filename in potential_policies:
 *             try:             # <<<<<<<<<<<<<<
 *                 self._load_policy(filename)
 *             except OSError as err:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
      __Pyx_XGOTREF(__pyx_t_15);
      __Pyx_XGOTREF(__pyx_t_16);
      __Pyx_XGOTREF(__pyx_t_17);
      /*try:*/ {

        /* "setools/policyrep/selinuxpolicy.pxi":752
 *         for filename in potential_policies:
 *             try:
 *                 self._load_policy(filename)             # <<<<<<<<<<<<<<
 *             except OSError as err:
 *                 if err.errno != ENOENT:
*/
        __pyx_t_4 = __pyx_v_filename;
        __Pyx_INCREF(__pyx_t_4);
        if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_4))) __PYX_ERR(5, 752, __pyx_L9_error)
        __pyx_t_7 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_policy(__pyx_v_self, ((PyObject*)__pyx_t_4)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 752, __pyx_L9_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "setools/policyrep/selinuxpolicy.pxi":751
 *         self.log.debug(f"Potential policies: {potential_policies}")
 *         for filename in potential_policies:
 *             try:             # <<<<<<<<<<<<<<
 *                 self._load_policy(filename)
 *             except OSError as err:
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":757
 *                     raise
 *             else:
 *                 break             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuntimeError("Unable to locate an SELinux policy to load.")
*/
      /*else:*/ {
        goto __pyx_L14_try_break;
      }
      __pyx_L9_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":753
 *             try:
 *                 self._load_policy(filename)
 *             except OSError as err:             # <<<<<<<<<<<<<<
 *                 if err.errno != ENOENT:
 *                     raise
*/
      __pyx_t_18 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_OSError))));
      if (__pyx_t_18) {
        __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_running_policy", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_4, &__pyx_t_1) < 0) __PYX_ERR(5, 753, __pyx_L11_except_error)
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_4);
        __Pyx_XGOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __pyx_v_err = __pyx_t_4;
        /*try:*/ {

          /* "setools/policyrep/selinuxpolicy.pxi":754
 *                 self._load_policy(filename)
 *             except OSError as err:
 *                 if err.errno != ENOENT:             # <<<<<<<<<<<<<<
 *                     raise
 *             else:
*/
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_err, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 754, __pyx_L22_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_19 = __Pyx_PyLong_From___pyx_anon_enum(ENOENT); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 754, __pyx_L22_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_20 = PyObject_RichCompare(__pyx_t_2, __pyx_t_19, Py_NE); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 754, __pyx_L22_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(5, 754, __pyx_L22_error)
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          if (unlikely(__pyx_t_8)) {

            /* "setools/policyrep/selinuxpolicy.pxi":755
 *             except OSError as err:
 *                 if err.errno != ENOENT:
 *                     raise             # <<<<<<<<<<<<<<
 *             else:
 *                 break
*/
            __Pyx_GIVEREF(__pyx_t_7);
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_XGIVEREF(__pyx_t_1);
            __Pyx_ErrRestoreWithState(__pyx_t_7, __pyx_t_4, __pyx_t_1);
            __pyx_t_7 = 0;  __pyx_t_4 = 0;  __pyx_t_1 = 0; 
            __PYX_ERR(5, 755, __pyx_L22_error)

            /* "setools/policyrep/selinuxpolicy.pxi":754
 *                 self._load_policy(filename)
 *             except OSError as err:
 *                 if err.errno != ENOENT:             # <<<<<<<<<<<<<<
 *                     raise
 *             else:
*/
          }
        }

        /* "setools/policyrep/selinuxpolicy.pxi":753
 *             try:
 *                 self._load_policy(filename)
 *             except OSError as err:             # <<<<<<<<<<<<<<
 *                 if err.errno != ENOENT:
 *                     raise
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_DECREF(__pyx_v_err); __pyx_v_err = 0;
            goto __pyx_L23;
          }
          __pyx_L22_error:;
          /*exception exit:*/{
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0;
            __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
             __Pyx_ExceptionSwap(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28);
            if ( unlikely(__Pyx_GetException(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25) < 0)) __Pyx_ErrFetch(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25);
            __Pyx_XGOTREF(__pyx_t_23);
            __Pyx_XGOTREF(__pyx_t_24);
            __Pyx_XGOTREF(__pyx_t_25);
            __Pyx_XGOTREF(__pyx_t_26);
            __Pyx_XGOTREF(__pyx_t_27);
            __Pyx_XGOTREF(__pyx_t_28);
            __pyx_t_18 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_22 = __pyx_filename;
            {
              __Pyx_DECREF(__pyx_v_err); __pyx_v_err = 0;
            }
            __Pyx_XGIVEREF(__pyx_t_26);
            __Pyx_XGIVEREF(__pyx_t_27);
            __Pyx_XGIVEREF(__pyx_t_28);
            __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28);
            __Pyx_XGIVEREF(__pyx_t_23);
            __Pyx_XGIVEREF(__pyx_t_24);
            __Pyx_XGIVEREF(__pyx_t_25);
            __Pyx_ErrRestore(__pyx_t_23, __pyx_t_24, __pyx_t_25);
            __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0;
            __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_22;
            goto __pyx_L11_except_error;
          }
          __pyx_L23:;
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L10_exception_handled;
      }
      goto __pyx_L11_except_error;

      /* "setools/policyrep/selinuxpolicy.pxi":751
 *         self.log.debug(f"Potential policies: {potential_policies}")
 *         for filename in potential_policies:
 *             try:             # <<<<<<<<<<<<<<
 *                 self._load_policy(filename)
 *             except OSError as err:
*/
      __pyx_L11_except_error:;
      __Pyx_XGIVEREF(__pyx_t_15);
      __Pyx_XGIVEREF(__pyx_t_16);
      __Pyx_XGIVEREF(__pyx_t_17);
      __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
      goto __pyx_L1_error;
      __pyx_L14_try_break:;
      __Pyx_XGIVEREF(__pyx_t_15);
      __Pyx_XGIVEREF(__pyx_t_16);
      __Pyx_XGIVEREF(__pyx_t_17);
      __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
      goto __pyx_L8_break;
      __pyx_L10_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_15);
      __Pyx_XGIVEREF(__pyx_t_16);
      __Pyx_XGIVEREF(__pyx_t_17);
      __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
    }

    /* "setools/policyrep/selinuxpolicy.pxi":750
 * 
 *         self.log.debug(f"Potential policies: {potential_policies}")
 *         for filename in potential_policies:             # <<<<<<<<<<<<<<
 *             try:
 *                 self._load_policy(filename)
*/
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  goto __pyx_L29_for_else;
  __pyx_L8_break:;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  goto __pyx_L30_for_end;
  /*else*/ {
    __pyx_L29_for_else:;

    /* "setools/policyrep/selinuxpolicy.pxi":759
 *                 break
 *         else:
 *             raise RuntimeError("Unable to locate an SELinux policy to load.")             # <<<<<<<<<<<<<<
 * 
 *     cdef _set_permissive_flags(self):
*/
    __pyx_t_1 = NULL;
    __pyx_t_3 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_Unable_to_locate_an_SELinux_poli};
      __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 759, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_Raise(__pyx_t_5, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __PYX_ERR(5, 759, __pyx_L1_error)
  }
  __pyx_L30_for_end:;

  /* "setools/policyrep/selinuxpolicy.pxi":725
 *         self.path = filename
 * 
 *     cdef _load_running_policy(self):             # <<<<<<<<<<<<<<
 *         """Try to load the current running policy."""
 *         cdef:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_running_policy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_potential_policies);
  __Pyx_XDECREF(__pyx_v_filename);
  __Pyx_XDECREF(__pyx_v_err);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":761
 *             raise RuntimeError("Unable to locate an SELinux policy to load.")
 * 
 *     cdef _set_permissive_flags(self):             # <<<<<<<<<<<<<<
 *         """
 *         Set permissive flag in type datums.
*/

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__set_permissive_flags(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  size_t __pyx_v_bit;
  ebitmap_node_t *__pyx_v_node;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_permissive_flags", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":769
 *         cdef:
 *             size_t bit
 *             sepol.ebitmap_node_t *node = NULL             # <<<<<<<<<<<<<<
 * 
 *         self.log.debug("Setting permissive flags in type datums.")
*/
  __pyx_v_node = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":771
 *             sepol.ebitmap_node_t *node = NULL
 * 
 *         self.log.debug("Setting permissive flags in type datums.")             # <<<<<<<<<<<<<<
 * 
 *         bit = sepol.ebitmap_start(&self.handle.p.permissive_map, &node)
*/
  __pyx_t_2 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Setting_permissive_flags_in_type};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_debug, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 771, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":773
 *         self.log.debug("Setting permissive flags in type datums.")
 * 
 *         bit = sepol.ebitmap_start(&self.handle.p.permissive_map, &node)             # <<<<<<<<<<<<<<
 *         while bit < sepol.ebitmap_length(&self.handle.p.permissive_map):
 *             if sepol.ebitmap_node_get_bit(node, bit):
*/
  __pyx_v_bit = ebitmap_start((&__pyx_v_self->handle->p.permissive_map), (&__pyx_v_node));

  /* "setools/policyrep/selinuxpolicy.pxi":774
 * 
 *         bit = sepol.ebitmap_start(&self.handle.p.permissive_map, &node)
 *         while bit < sepol.ebitmap_length(&self.handle.p.permissive_map):             # <<<<<<<<<<<<<<
 *             if sepol.ebitmap_node_get_bit(node, bit):
 *                 assert bit == self.handle.p.type_val_to_struct[bit - 1].s.value
*/
  while (1) {
    __pyx_t_4 = (__pyx_v_bit < ebitmap_length((&__pyx_v_self->handle->p.permissive_map)));
    if (!__pyx_t_4) break;

    /* "setools/policyrep/selinuxpolicy.pxi":775
 *         bit = sepol.ebitmap_start(&self.handle.p.permissive_map, &node)
 *         while bit < sepol.ebitmap_length(&self.handle.p.permissive_map):
 *             if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                 assert bit == self.handle.p.type_val_to_struct[bit - 1].s.value
 *                 self.handle.p.type_val_to_struct[bit - 1].flags |= sepol.TYPE_FLAGS_PERMISSIVE
*/
    __pyx_t_4 = (ebitmap_node_get_bit(__pyx_v_node, __pyx_v_bit) != 0);
    if (__pyx_t_4) {

      /* "setools/policyrep/selinuxpolicy.pxi":776
 *         while bit < sepol.ebitmap_length(&self.handle.p.permissive_map):
 *             if sepol.ebitmap_node_get_bit(node, bit):
 *                 assert bit == self.handle.p.type_val_to_struct[bit - 1].s.value             # <<<<<<<<<<<<<<
 *                 self.handle.p.type_val_to_struct[bit - 1].flags |= sepol.TYPE_FLAGS_PERMISSIVE
 * 
*/
      #ifndef CYTHON_WITHOUT_ASSERTIONS
      if (unlikely(__pyx_assertions_enabled())) {
        __pyx_t_4 = (__pyx_v_bit == (__pyx_v_self->handle->p.type_val_to_struct[(__pyx_v_bit - 1)])->s.value);
        if (unlikely(!__pyx_t_4)) {
          __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
          __PYX_ERR(5, 776, __pyx_L1_error)
        }
      }
      #else
      if ((1)); else __PYX_ERR(5, 776, __pyx_L1_error)
      #endif

      /* "setools/policyrep/selinuxpolicy.pxi":777
 *             if sepol.ebitmap_node_get_bit(node, bit):
 *                 assert bit == self.handle.p.type_val_to_struct[bit - 1].s.value
 *                 self.handle.p.type_val_to_struct[bit - 1].flags |= sepol.TYPE_FLAGS_PERMISSIVE             # <<<<<<<<<<<<<<
 * 
 *             bit = sepol.ebitmap_next(&node, bit)
*/
      __pyx_t_3 = (__pyx_v_bit - 1);
      (__pyx_v_self->handle->p.type_val_to_struct[__pyx_t_3])->flags = ((__pyx_v_self->handle->p.type_val_to_struct[__pyx_t_3])->flags | TYPE_FLAGS_PERMISSIVE);

      /* "setools/policyrep/selinuxpolicy.pxi":775
 *         bit = sepol.ebitmap_start(&self.handle.p.permissive_map, &node)
 *         while bit < sepol.ebitmap_length(&self.handle.p.permissive_map):
 *             if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                 assert bit == self.handle.p.type_val_to_struct[bit - 1].s.value
 *                 self.handle.p.type_val_to_struct[bit - 1].flags |= sepol.TYPE_FLAGS_PERMISSIVE
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":779
 *                 self.handle.p.type_val_to_struct[bit - 1].flags |= sepol.TYPE_FLAGS_PERMISSIVE
 * 
 *             bit = sepol.ebitmap_next(&node, bit)             # <<<<<<<<<<<<<<
 * 
 *     cdef _create_mls_val_to_struct(self):
*/
    __pyx_v_bit = ebitmap_next((&__pyx_v_node), __pyx_v_bit);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":761
 *             raise RuntimeError("Unable to locate an SELinux policy to load.")
 * 
 *     cdef _set_permissive_flags(self):             # <<<<<<<<<<<<<<
 *         """
 *         Set permissive flag in type datums.
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._set_permissive_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":781
 *             bit = sepol.ebitmap_next(&node, bit)
 * 
 *     cdef _create_mls_val_to_struct(self):             # <<<<<<<<<<<<<<
 *         """Create *_val_to_struct arrays for categories and levels."""
 *         cdef:
*/

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__create_mls_val_to_struct(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  cat_datum_t *__pyx_v_cat_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_bucket_len;
  size_t __pyx_v_map_len;
  level_datum_t *__pyx_v_level_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  uint32_t __pyx_t_4;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  struct hashtab_node *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_create_mls_val_to_struct", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":786
 *             sepol.cat_datum_t *cat_datum
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             size_t bucket_len
 *             size_t map_len
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":793
 *         # Create cat_val_to_struct  (indexed by value -1)
 *         #
 *         self.log.debug("Creating cat_val_to_struct.")             # <<<<<<<<<<<<<<
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_CATS].table.nel
*/
  __pyx_t_2 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Creating_cat_val_to_struct};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_debug, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":795
 *         self.log.debug("Creating cat_val_to_struct.")
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_CATS].table.nel             # <<<<<<<<<<<<<<
 *         bucket_len = self.handle.p.symtab[sepol.SYM_CATS].table[0].size
 * 
*/
  __pyx_t_4 = (__pyx_v_self->handle->p.symtab[SYM_CATS]).table->nel;
  __pyx_v_map_len = __pyx_t_4;

  /* "setools/policyrep/selinuxpolicy.pxi":796
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_CATS].table.nel
 *         bucket_len = self.handle.p.symtab[sepol.SYM_CATS].table[0].size             # <<<<<<<<<<<<<<
 * 
 *         self.cat_val_to_struct = <sepol.cat_datum_t**>PyMem_Malloc(
*/
  __pyx_t_5 = ((__pyx_v_self->handle->p.symtab[SYM_CATS]).table[0]).size;
  __pyx_v_bucket_len = __pyx_t_5;

  /* "setools/policyrep/selinuxpolicy.pxi":798
 *         bucket_len = self.handle.p.symtab[sepol.SYM_CATS].table[0].size
 * 
 *         self.cat_val_to_struct = <sepol.cat_datum_t**>PyMem_Malloc(             # <<<<<<<<<<<<<<
 *             map_len * sizeof(sepol.cat_datum_t*))
 * 
*/
  __pyx_v_self->cat_val_to_struct = ((cat_datum_t **)PyMem_Malloc((__pyx_v_map_len * (sizeof(cat_datum_t *)))));

  /* "setools/policyrep/selinuxpolicy.pxi":801
 *             map_len * sizeof(sepol.cat_datum_t*))
 * 
 *         if self.cat_val_to_struct == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  __pyx_t_6 = (__pyx_v_self->cat_val_to_struct == NULL);
  if (unlikely(__pyx_t_6)) {

    /* "setools/policyrep/selinuxpolicy.pxi":802
 * 
 *         if self.cat_val_to_struct == NULL:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         while bucket < bucket_len:
*/
    PyErr_NoMemory(); __PYX_ERR(5, 802, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":801
 *             map_len * sizeof(sepol.cat_datum_t*))
 * 
 *         if self.cat_val_to_struct == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":804
 *             raise MemoryError
 * 
 *         while bucket < bucket_len:             # <<<<<<<<<<<<<<
 *             node = self.handle.p.symtab[sepol.SYM_CATS].table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_6 = (__pyx_v_bucket < __pyx_v_bucket_len);
    if (!__pyx_t_6) break;

    /* "setools/policyrep/selinuxpolicy.pxi":805
 * 
 *         while bucket < bucket_len:
 *             node = self.handle.p.symtab[sepol.SYM_CATS].table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 cat_datum = <sepol.cat_datum_t *>node.datum
*/
    __pyx_v_node = (((__pyx_v_self->handle->p.symtab[SYM_CATS]).table[0]).htable[__pyx_v_bucket]);

    /* "setools/policyrep/selinuxpolicy.pxi":806
 *         while bucket < bucket_len:
 *             node = self.handle.p.symtab[sepol.SYM_CATS].table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 cat_datum = <sepol.cat_datum_t *>node.datum
 *                 if cat_datum != NULL:
*/
    while (1) {
      __pyx_t_6 = (__pyx_v_node != NULL);
      if (!__pyx_t_6) break;

      /* "setools/policyrep/selinuxpolicy.pxi":807
 *             node = self.handle.p.symtab[sepol.SYM_CATS].table[0].htable[bucket]
 *             while node != NULL:
 *                 cat_datum = <sepol.cat_datum_t *>node.datum             # <<<<<<<<<<<<<<
 *                 if cat_datum != NULL:
 *                     self.cat_val_to_struct[cat_datum.s.value - 1] = cat_datum
*/
      __pyx_v_cat_datum = ((cat_datum_t *)__pyx_v_node->datum);

      /* "setools/policyrep/selinuxpolicy.pxi":808
 *             while node != NULL:
 *                 cat_datum = <sepol.cat_datum_t *>node.datum
 *                 if cat_datum != NULL:             # <<<<<<<<<<<<<<
 *                     self.cat_val_to_struct[cat_datum.s.value - 1] = cat_datum
 * 
*/
      __pyx_t_6 = (__pyx_v_cat_datum != NULL);
      if (__pyx_t_6) {

        /* "setools/policyrep/selinuxpolicy.pxi":809
 *                 cat_datum = <sepol.cat_datum_t *>node.datum
 *                 if cat_datum != NULL:
 *                     self.cat_val_to_struct[cat_datum.s.value - 1] = cat_datum             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        (__pyx_v_self->cat_val_to_struct[(__pyx_v_cat_datum->s.value - 1)]) = __pyx_v_cat_datum;

        /* "setools/policyrep/selinuxpolicy.pxi":808
 *             while node != NULL:
 *                 cat_datum = <sepol.cat_datum_t *>node.datum
 *                 if cat_datum != NULL:             # <<<<<<<<<<<<<<
 *                     self.cat_val_to_struct[cat_datum.s.value - 1] = cat_datum
 * 
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":811
 *                     self.cat_val_to_struct[cat_datum.s.value - 1] = cat_datum
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_7 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_7;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":813
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         #
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":818
 *         # Create level_val_to_struct  (indexed by value -1)
 *         #
 *         self.log.debug("Creating level_val_to_struct.")             # <<<<<<<<<<<<<<
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_LEVELS].table.nel
*/
  __pyx_t_2 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Creating_level_val_to_struct};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_debug, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 818, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":820
 *         self.log.debug("Creating level_val_to_struct.")
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_LEVELS].table.nel             # <<<<<<<<<<<<<<
 *         bucket_len = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].size
 *         bucket = 0
*/
  __pyx_t_4 = (__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table->nel;
  __pyx_v_map_len = __pyx_t_4;

  /* "setools/policyrep/selinuxpolicy.pxi":821
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_LEVELS].table.nel
 *         bucket_len = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].size             # <<<<<<<<<<<<<<
 *         bucket = 0
 * 
*/
  __pyx_t_5 = ((__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table[0]).size;
  __pyx_v_bucket_len = __pyx_t_5;

  /* "setools/policyrep/selinuxpolicy.pxi":822
 *         map_len = self.handle.p.symtab[sepol.SYM_LEVELS].table.nel
 *         bucket_len = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].size
 *         bucket = 0             # <<<<<<<<<<<<<<
 * 
 *         self.level_val_to_struct = <sepol.level_datum_t**>PyMem_Malloc(
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":824
 *         bucket = 0
 * 
 *         self.level_val_to_struct = <sepol.level_datum_t**>PyMem_Malloc(             # <<<<<<<<<<<<<<
 *             map_len * sizeof(sepol.level_datum_t*))
 * 
*/
  __pyx_v_self->level_val_to_struct = ((level_datum_t **)PyMem_Malloc((__pyx_v_map_len * (sizeof(level_datum_t *)))));

  /* "setools/policyrep/selinuxpolicy.pxi":827
 *             map_len * sizeof(sepol.level_datum_t*))
 * 
 *         if self.level_val_to_struct == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  __pyx_t_6 = (__pyx_v_self->level_val_to_struct == NULL);
  if (unlikely(__pyx_t_6)) {

    /* "setools/policyrep/selinuxpolicy.pxi":828
 * 
 *         if self.level_val_to_struct == NULL:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         while bucket < bucket_len:
*/
    PyErr_NoMemory(); __PYX_ERR(5, 828, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":827
 *             map_len * sizeof(sepol.level_datum_t*))
 * 
 *         if self.level_val_to_struct == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":830
 *             raise MemoryError
 * 
 *         while bucket < bucket_len:             # <<<<<<<<<<<<<<
 *             node = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_6 = (__pyx_v_bucket < __pyx_v_bucket_len);
    if (!__pyx_t_6) break;

    /* "setools/policyrep/selinuxpolicy.pxi":831
 * 
 *         while bucket < bucket_len:
 *             node = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 level_datum = <sepol.level_datum_t *>node.datum
*/
    __pyx_v_node = (((__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table[0]).htable[__pyx_v_bucket]);

    /* "setools/policyrep/selinuxpolicy.pxi":832
 *         while bucket < bucket_len:
 *             node = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 level_datum = <sepol.level_datum_t *>node.datum
 *                 if level_datum != NULL:
*/
    while (1) {
      __pyx_t_6 = (__pyx_v_node != NULL);
      if (!__pyx_t_6) break;

      /* "setools/policyrep/selinuxpolicy.pxi":833
 *             node = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].htable[bucket]
 *             while node != NULL:
 *                 level_datum = <sepol.level_datum_t *>node.datum             # <<<<<<<<<<<<<<
 *                 if level_datum != NULL:
 *                     self.level_val_to_struct[level_datum.level.sens - 1] = level_datum
*/
      __pyx_v_level_datum = ((level_datum_t *)__pyx_v_node->datum);

      /* "setools/policyrep/selinuxpolicy.pxi":834
 *             while node != NULL:
 *                 level_datum = <sepol.level_datum_t *>node.datum
 *                 if level_datum != NULL:             # <<<<<<<<<<<<<<
 *                     self.level_val_to_struct[level_datum.level.sens - 1] = level_datum
 * 
*/
      __pyx_t_6 = (__pyx_v_level_datum != NULL);
      if (__pyx_t_6) {

        /* "setools/policyrep/selinuxpolicy.pxi":835
 *                 level_datum = <sepol.level_datum_t *>node.datum
 *                 if level_datum != NULL:
 *                     self.level_val_to_struct[level_datum.level.sens - 1] = level_datum             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        (__pyx_v_self->level_val_to_struct[(__pyx_v_level_datum->level->sens - 1)]) = __pyx_v_level_datum;

        /* "setools/policyrep/selinuxpolicy.pxi":834
 *             while node != NULL:
 *                 level_datum = <sepol.level_datum_t *>node.datum
 *                 if level_datum != NULL:             # <<<<<<<<<<<<<<
 *                     self.level_val_to_struct[level_datum.level.sens - 1] = level_datum
 * 
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":837
 *                     self.level_val_to_struct[level_datum.level.sens - 1] = level_datum
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_7 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_7;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":839
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *     cdef _load_category_aliases(self):
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":781
 *             bit = sepol.ebitmap_next(&node, bit)
 * 
 *     cdef _create_mls_val_to_struct(self):             # <<<<<<<<<<<<<<
 *         """Create *_val_to_struct arrays for categories and levels."""
 *         cdef:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._create_mls_val_to_struct", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":841
 *             bucket += 1
 * 
 *     cdef _load_category_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to categories"""
 *         cdef:
*/

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_category_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  hashtab_t *__pyx_v_table;
  cat_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_entry = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  cat_datum_t *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  struct hashtab_node *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_category_aliases", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":844
 *         """Build map of aliases to categories"""
 *         cdef:
 *             sepol.hashtab_t *table = &self.handle.p.symtab[sepol.SYM_CATS].table             # <<<<<<<<<<<<<<
 *             sepol.cat_datum_t *datum
 *             sepol.hashtab_node_t *node
*/
  __pyx_v_table = (&(__pyx_v_self->handle->p.symtab[SYM_CATS]).table);

  /* "setools/policyrep/selinuxpolicy.pxi":847
 *             sepol.cat_datum_t *datum
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             list entry
 * 
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":850
 *             list entry
 * 
 *         self.category_alias_map = dict()             # <<<<<<<<<<<<<<
 * 
 *         while bucket < table[0].size:
*/
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->category_alias_map);
  __Pyx_DECREF(__pyx_v_self->category_alias_map);
  __pyx_v_self->category_alias_map = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":852
 *         self.category_alias_map = dict()
 * 
 *         while bucket < table[0].size:             # <<<<<<<<<<<<<<
 *             node = table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_bucket < (__pyx_v_table[0])->size);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/selinuxpolicy.pxi":853
 * 
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
*/
    __pyx_v_node = ((__pyx_v_table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/selinuxpolicy.pxi":854
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
*/
    while (1) {
      __pyx_t_2 = (__pyx_v_node != NULL);
      if (!__pyx_t_2) break;

      /* "setools/policyrep/selinuxpolicy.pxi":855
 *             node = table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum == NULL:
 *                     continue
*/
      __pyx_t_2 = (__pyx_v_node != 0);
      if (__pyx_t_2) {
        __pyx_t_3 = ((cat_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_3 = NULL;
      }
      __pyx_v_datum = __pyx_t_3;

      /* "setools/policyrep/selinuxpolicy.pxi":856
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
*/
      __pyx_t_2 = (__pyx_v_datum == NULL);
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":857
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
 *                     continue             # <<<<<<<<<<<<<<
 * 
 *                 entry = self.category_alias_map.setdefault(datum.s.value, list())
*/
        goto __pyx_L5_continue;

        /* "setools/policyrep/selinuxpolicy.pxi":856
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":859
 *                     continue
 * 
 *                 entry = self.category_alias_map.setdefault(datum.s.value, list())             # <<<<<<<<<<<<<<
 *                 if datum.isalias:
 *                     entry.append(intern(node.key))
*/
      if (unlikely(__pyx_v_self->category_alias_map == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "setdefault");
        __PYX_ERR(5, 859, __pyx_L1_error)
      }
      __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_datum->s.value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 859, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 859, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyDict_SetDefault(__pyx_v_self->category_alias_map, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 859, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(5, 859, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_entry, ((PyObject*)__pyx_t_5));
      __pyx_t_5 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":860
 * 
 *                 entry = self.category_alias_map.setdefault(datum.s.value, list())
 *                 if datum.isalias:             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
*/
      __pyx_t_2 = (__pyx_v_datum->isalias != 0);
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":861
 *                 entry = self.category_alias_map.setdefault(datum.s.value, list())
 *                 if datum.isalias:
 *                     entry.append(intern(node.key))             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        if (unlikely(__pyx_v_entry == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(5, 861, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyUnicode_FromString(__pyx_v_node->key); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 861, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = __Pyx_Intern(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 861, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_entry, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(5, 861, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "setools/policyrep/selinuxpolicy.pxi":860
 * 
 *                 entry = self.category_alias_map.setdefault(datum.s.value, list())
 *                 if datum.isalias:             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":863
 *                     entry.append(intern(node.key))
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_7 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_7;
      __pyx_L5_continue:;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":865
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *     cdef _load_sensitivity_aliases(self):
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":841
 *             bucket += 1
 * 
 *     cdef _load_category_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to categories"""
 *         cdef:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_category_aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_entry);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":867
 *             bucket += 1
 * 
 *     cdef _load_sensitivity_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to sensitivities"""
 *         cdef:
*/

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_sensitivity_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  hashtab_t *__pyx_v_table;
  level_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_entry = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  level_datum_t *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  struct hashtab_node *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_sensitivity_aliases", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":870
 *         """Build map of aliases to sensitivities"""
 *         cdef:
 *             sepol.hashtab_t *table = &self.handle.p.symtab[sepol.SYM_LEVELS].table             # <<<<<<<<<<<<<<
 *             sepol.level_datum_t *datum
 *             sepol.hashtab_node_t *node
*/
  __pyx_v_table = (&(__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table);

  /* "setools/policyrep/selinuxpolicy.pxi":873
 *             sepol.level_datum_t *datum
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             list entry
 * 
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":876
 *             list entry
 * 
 *         self.sensitivity_alias_map = dict()             # <<<<<<<<<<<<<<
 * 
 *         while bucket < table[0].size:
*/
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->sensitivity_alias_map);
  __Pyx_DECREF(__pyx_v_self->sensitivity_alias_map);
  __pyx_v_self->sensitivity_alias_map = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":878
 *         self.sensitivity_alias_map = dict()
 * 
 *         while bucket < table[0].size:             # <<<<<<<<<<<<<<
 *             node = table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_bucket < (__pyx_v_table[0])->size);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/selinuxpolicy.pxi":879
 * 
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
*/
    __pyx_v_node = ((__pyx_v_table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/selinuxpolicy.pxi":880
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
*/
    while (1) {
      __pyx_t_2 = (__pyx_v_node != NULL);
      if (!__pyx_t_2) break;

      /* "setools/policyrep/selinuxpolicy.pxi":881
 *             node = table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum == NULL:
 *                     continue
*/
      __pyx_t_2 = (__pyx_v_node != 0);
      if (__pyx_t_2) {
        __pyx_t_3 = ((level_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_3 = NULL;
      }
      __pyx_v_datum = __pyx_t_3;

      /* "setools/policyrep/selinuxpolicy.pxi":882
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
*/
      __pyx_t_2 = (__pyx_v_datum == NULL);
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":883
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
 *                     continue             # <<<<<<<<<<<<<<
 * 
 *                 entry = self.sensitivity_alias_map.setdefault(datum.level.sens, list())
*/
        goto __pyx_L5_continue;

        /* "setools/policyrep/selinuxpolicy.pxi":882
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":885
 *                     continue
 * 
 *                 entry = self.sensitivity_alias_map.setdefault(datum.level.sens, list())             # <<<<<<<<<<<<<<
 *                 if datum.isalias:
 *                     entry.append(intern(node.key))
*/
      if (unlikely(__pyx_v_self->sensitivity_alias_map == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "setdefault");
        __PYX_ERR(5, 885, __pyx_L1_error)
      }
      __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_datum->level->sens); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 885, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 885, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyDict_SetDefault(__pyx_v_self->sensitivity_alias_map, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 885, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(5, 885, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_entry, ((PyObject*)__pyx_t_5));
      __pyx_t_5 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":886
 * 
 *                 entry = self.sensitivity_alias_map.setdefault(datum.level.sens, list())
 *                 if datum.isalias:             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
*/
      __pyx_t_2 = (__pyx_v_datum->isalias != 0);
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":887
 *                 entry = self.sensitivity_alias_map.setdefault(datum.level.sens, list())
 *                 if datum.isalias:
 *                     entry.append(intern(node.key))             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        if (unlikely(__pyx_v_entry == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(5, 887, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyUnicode_FromString(__pyx_v_node->key); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 887, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = __Pyx_Intern(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 887, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_entry, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(5, 887, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "setools/policyrep/selinuxpolicy.pxi":886
 * 
 *                 entry = self.sensitivity_alias_map.setdefault(datum.level.sens, list())
 *                 if datum.isalias:             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":889
 *                     entry.append(intern(node.key))
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_7 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_7;
      __pyx_L5_continue:;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":891
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *     cdef _load_type_aliases(self):
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":867
 *             bucket += 1
 * 
 *     cdef _load_sensitivity_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to sensitivities"""
 *         cdef:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_sensitivity_aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_entry);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":893
 *             bucket += 1
 * 
 *     cdef _load_type_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to types"""
 *         cdef:
*/

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_type_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  hashtab_t *__pyx_v_table;
  type_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_entry = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  type_datum_t *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  struct hashtab_node *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_type_aliases", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":896
 *         """Build map of aliases to types"""
 *         cdef:
 *             sepol.hashtab_t *table = &self.handle.p.symtab[sepol.SYM_TYPES].table             # <<<<<<<<<<<<<<
 *             sepol.type_datum_t *datum
 *             sepol.hashtab_node_t *node
*/
  __pyx_v_table = (&(__pyx_v_self->handle->p.symtab[SYM_TYPES]).table);

  /* "setools/policyrep/selinuxpolicy.pxi":899
 *             sepol.type_datum_t *datum
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             list entry
 * 
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":902
 *             list entry
 * 
 *         self.type_alias_map = dict()             # <<<<<<<<<<<<<<
 * 
 *         while bucket < table[0].size:
*/
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->type_alias_map);
  __Pyx_DECREF(__pyx_v_self->type_alias_map);
  __pyx_v_self->type_alias_map = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":904
 *         self.type_alias_map = dict()
 * 
 *         while bucket < table[0].size:             # <<<<<<<<<<<<<<
 *             node = table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_bucket < (__pyx_v_table[0])->size);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/selinuxpolicy.pxi":905
 * 
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
*/
    __pyx_v_node = ((__pyx_v_table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/selinuxpolicy.pxi":906
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
*/
    while (1) {
      __pyx_t_2 = (__pyx_v_node != NULL);
      if (!__pyx_t_2) break;

      /* "setools/policyrep/selinuxpolicy.pxi":907
 *             node = table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum == NULL:
 *                     continue
*/
      __pyx_t_2 = (__pyx_v_node != 0);
      if (__pyx_t_2) {
        __pyx_t_3 = ((type_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_3 = NULL;
      }
      __pyx_v_datum = __pyx_t_3;

      /* "setools/policyrep/selinuxpolicy.pxi":908
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
*/
      __pyx_t_2 = (__pyx_v_datum == NULL);
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":909
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
 *                     continue             # <<<<<<<<<<<<<<
 * 
 *                 entry = self.type_alias_map.setdefault(datum.s.value, list())
*/
        goto __pyx_L5_continue;

        /* "setools/policyrep/selinuxpolicy.pxi":908
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":911
 *                     continue
 * 
 *                 entry = self.type_alias_map.setdefault(datum.s.value, list())             # <<<<<<<<<<<<<<
 *                 if type_is_alias(datum):
 *                     entry.append(intern(node.key))
*/
      if (unlikely(__pyx_v_self->type_alias_map == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "setdefault");
        __PYX_ERR(5, 911, __pyx_L1_error)
      }
      __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_datum->s.value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 911, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 911, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyDict_SetDefault(__pyx_v_self->type_alias_map, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 911, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(5, 911, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_entry, ((PyObject*)__pyx_t_5));
      __pyx_t_5 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":912
 * 
 *                 entry = self.type_alias_map.setdefault(datum.s.value, list())
 *                 if type_is_alias(datum):             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
*/
      __pyx_t_2 = __pyx_f_7setools_9policyrep_type_is_alias(__pyx_v_datum); if (unlikely(__pyx_t_2 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(5, 912, __pyx_L1_error)
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":913
 *                 entry = self.type_alias_map.setdefault(datum.s.value, list())
 *                 if type_is_alias(datum):
 *                     entry.append(intern(node.key))             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        if (unlikely(__pyx_v_entry == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(5, 913, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyUnicode_FromString(__pyx_v_node->key); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 913, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = __Pyx_Intern(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 913, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_entry, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(5, 913, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "setools/policyrep/selinuxpolicy.pxi":912
 * 
 *                 entry = self.type_alias_map.setdefault(datum.s.value, list())
 *                 if type_is_alias(datum):             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":915
 *                     entry.append(intern(node.key))
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_7 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_7;
      __pyx_L5_continue:;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":917
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *     cdef _rebuild_attrs_from_map(self):
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":893
 *             bucket += 1
 * 
 *     cdef _load_type_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to types"""
 *         cdef:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_type_aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_entry);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":919
 *             bucket += 1
 * 
 *     cdef _rebuild_attrs_from_map(self):             # <<<<<<<<<<<<<<
 *         """
 *         Rebuilds data for the attributes and inserts them into the policydb.
*/

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__rebuild_attrs_from_map(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  size_t __pyx_v_bit;
  size_t __pyx_v_i;
  ebitmap_node_t *__pyx_v_node;
  type_datum_t *__pyx_v_tmp_type;
  char *__pyx_v_tmp_name;
  type_datum_t *__pyx_v_orig_type;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  uint32_t __pyx_t_4;
  uint32_t __pyx_t_5;
  int __pyx_t_6;
  ebitmap_node_t *__pyx_t_7;
  uint32_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_rebuild_attrs_from_map", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":932
 *         cdef:
 *             size_t bit, i, count
 *             sepol.ebitmap_node_t *node = NULL             # <<<<<<<<<<<<<<
 *             sepol.type_datum_t *tmp_type
 *             char *tmp_name
*/
  __pyx_v_node = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":936
 *             char *tmp_name
 * 
 *         self.log.debug("Rebuilding attributes.")             # <<<<<<<<<<<<<<
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
*/
  __pyx_t_2 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Rebuilding_attributes};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_debug, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 936, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":938
 *         self.log.debug("Rebuilding attributes.")
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):             # <<<<<<<<<<<<<<
 *             tmp_type = self.handle.p.type_val_to_struct[i]
 * 
*/
  __pyx_t_4 = (__pyx_v_self->handle->p.symtab[SYM_TYPES]).nprim;
  __pyx_t_5 = __pyx_t_4;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_5; __pyx_t_3+=1) {
    __pyx_v_i = __pyx_t_3;

    /* "setools/policyrep/selinuxpolicy.pxi":939
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
 *             tmp_type = self.handle.p.type_val_to_struct[i]             # <<<<<<<<<<<<<<
 * 
 *             # skip gaps
*/
    __pyx_v_tmp_type = (__pyx_v_self->handle->p.type_val_to_struct[__pyx_v_i]);

    /* "setools/policyrep/selinuxpolicy.pxi":942
 * 
 *             # skip gaps
 *             if tmp_type == NULL:             # <<<<<<<<<<<<<<
 *                 continue
 * 
*/
    __pyx_t_6 = (__pyx_v_tmp_type == NULL);
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":943
 *             # skip gaps
 *             if tmp_type == NULL:
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             # skip types
*/
      goto __pyx_L3_continue;

      /* "setools/policyrep/selinuxpolicy.pxi":942
 * 
 *             # skip gaps
 *             if tmp_type == NULL:             # <<<<<<<<<<<<<<
 *                 continue
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":946
 * 
 *             # skip types
 *             if tmp_type.flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *                 continue
 * 
*/
    __pyx_t_6 = (__pyx_v_tmp_type->flavor != TYPE_ATTRIB);
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":947
 *             # skip types
 *             if tmp_type.flavor != sepol.TYPE_ATTRIB:
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             # Synthesize a name if it is missing
*/
      goto __pyx_L3_continue;

      /* "setools/policyrep/selinuxpolicy.pxi":946
 * 
 *             # skip types
 *             if tmp_type.flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *                 continue
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":950
 * 
 *             # Synthesize a name if it is missing
 *             if self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] == NULL:             # <<<<<<<<<<<<<<
 *                 # synthesize name
 *                 tmp_name = <char*>calloc(15, sizeof(char))
*/
    __pyx_t_6 = (((__pyx_v_self->handle->p.sym_val_to_name[SYM_TYPES])[__pyx_v_i]) == NULL);
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":952
 *             if self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] == NULL:
 *                 # synthesize name
 *                 tmp_name = <char*>calloc(15, sizeof(char))             # <<<<<<<<<<<<<<
 *                 if tmp_name == NULL:
 *                     raise MemoryError
*/
      __pyx_v_tmp_name = ((char *)calloc(15, (sizeof(char))));

      /* "setools/policyrep/selinuxpolicy.pxi":953
 *                 # synthesize name
 *                 tmp_name = <char*>calloc(15, sizeof(char))
 *                 if tmp_name == NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError
 * 
*/
      __pyx_t_6 = (__pyx_v_tmp_name == NULL);
      if (unlikely(__pyx_t_6)) {

        /* "setools/policyrep/selinuxpolicy.pxi":954
 *                 tmp_name = <char*>calloc(15, sizeof(char))
 *                 if tmp_name == NULL:
 *                     raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *                 snprintf(tmp_name, 15, "@ttr%010zd", i + 1)
*/
        PyErr_NoMemory(); __PYX_ERR(5, 954, __pyx_L1_error)

        /* "setools/policyrep/selinuxpolicy.pxi":953
 *                 # synthesize name
 *                 tmp_name = <char*>calloc(15, sizeof(char))
 *                 if tmp_name == NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError
 * 
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":956
 *                     raise MemoryError
 * 
 *                 snprintf(tmp_name, 15, "@ttr%010zd", i + 1)             # <<<<<<<<<<<<<<
 * 
 *                 self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] = tmp_name
*/
      (void)(snprintf(__pyx_v_tmp_name, 15, __pyx_k_ttr_010zd, (__pyx_v_i + 1)));

      /* "setools/policyrep/selinuxpolicy.pxi":958
 *                 snprintf(tmp_name, 15, "@ttr%010zd", i + 1)
 * 
 *                 self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] = tmp_name             # <<<<<<<<<<<<<<
 * 
 *                 # do not free, memory is owned by policydb now.
*/
      ((__pyx_v_self->handle->p.sym_val_to_name[SYM_TYPES])[__pyx_v_i]) = __pyx_v_tmp_name;

      /* "setools/policyrep/selinuxpolicy.pxi":961
 * 
 *                 # do not free, memory is owned by policydb now.
 *                 tmp_name = NULL             # <<<<<<<<<<<<<<
 * 
 *             # determine if attribute is empty
*/
      __pyx_v_tmp_name = NULL;

      /* "setools/policyrep/selinuxpolicy.pxi":950
 * 
 *             # Synthesize a name if it is missing
 *             if self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] == NULL:             # <<<<<<<<<<<<<<
 *                 # synthesize name
 *                 tmp_name = <char*>calloc(15, sizeof(char))
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":964
 * 
 *             # determine if attribute is empty
 *             bit = sepol.ebitmap_start(&self.handle.p.attr_type_map[i], &node)             # <<<<<<<<<<<<<<
 *             while bit < sepol.ebitmap_length(&self.handle.p.attr_type_map[i]):
 *                 if sepol.ebitmap_node_get_bit(node, bit):
*/
    __pyx_v_bit = ebitmap_start((&(__pyx_v_self->handle->p.attr_type_map[__pyx_v_i])), (&__pyx_v_node));

    /* "setools/policyrep/selinuxpolicy.pxi":965
 *             # determine if attribute is empty
 *             bit = sepol.ebitmap_start(&self.handle.p.attr_type_map[i], &node)
 *             while bit < sepol.ebitmap_length(&self.handle.p.attr_type_map[i]):             # <<<<<<<<<<<<<<
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 *                     break
*/
    while (1) {
      __pyx_t_6 = (__pyx_v_bit < ebitmap_length((&(__pyx_v_self->handle->p.attr_type_map[__pyx_v_i]))));
      if (!__pyx_t_6) break;

      /* "setools/policyrep/selinuxpolicy.pxi":966
 *             bit = sepol.ebitmap_start(&self.handle.p.attr_type_map[i], &node)
 *             while bit < sepol.ebitmap_length(&self.handle.p.attr_type_map[i]):
 *                 if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                     break
 * 
*/
      __pyx_t_6 = (ebitmap_node_get_bit(__pyx_v_node, __pyx_v_bit) != 0);
      if (__pyx_t_6) {

        /* "setools/policyrep/selinuxpolicy.pxi":967
 *             while bit < sepol.ebitmap_length(&self.handle.p.attr_type_map[i]):
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 *                     break             # <<<<<<<<<<<<<<
 * 
 *                 bit = sepol.ebitmap_next(&node, bit)
*/
        goto __pyx_L10_break;

        /* "setools/policyrep/selinuxpolicy.pxi":966
 *             bit = sepol.ebitmap_start(&self.handle.p.attr_type_map[i], &node)
 *             while bit < sepol.ebitmap_length(&self.handle.p.attr_type_map[i]):
 *                 if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                     break
 * 
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":969
 *                     break
 * 
 *                 bit = sepol.ebitmap_next(&node, bit)             # <<<<<<<<<<<<<<
 * 
 *             else:
*/
      __pyx_v_bit = ebitmap_next((&__pyx_v_node), __pyx_v_bit);
    }

    /* "setools/policyrep/selinuxpolicy.pxi":973
 *             else:
 *                 # skip empty attributes
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             # relink the attr_type_map ebitmap to the type datum
*/
    /*else*/ {
      goto __pyx_L3_continue;
    }
    __pyx_L10_break:;

    /* "setools/policyrep/selinuxpolicy.pxi":976
 * 
 *             # relink the attr_type_map ebitmap to the type datum
 *             tmp_type.types.node = self.handle.p.attr_type_map[i].node             # <<<<<<<<<<<<<<
 *             tmp_type.types.highbit = self.handle.p.attr_type_map[i].highbit
 * 
*/
    __pyx_t_7 = (__pyx_v_self->handle->p.attr_type_map[__pyx_v_i]).node;
    __pyx_v_tmp_type->types.node = __pyx_t_7;

    /* "setools/policyrep/selinuxpolicy.pxi":977
 *             # relink the attr_type_map ebitmap to the type datum
 *             tmp_type.types.node = self.handle.p.attr_type_map[i].node
 *             tmp_type.types.highbit = self.handle.p.attr_type_map[i].highbit             # <<<<<<<<<<<<<<
 * 
 *             # disconnect ebitmap from attr_type_map to avoid
*/
    __pyx_t_8 = (__pyx_v_self->handle->p.attr_type_map[__pyx_v_i]).highbit;
    __pyx_v_tmp_type->types.highbit = __pyx_t_8;

    /* "setools/policyrep/selinuxpolicy.pxi":981
 *             # disconnect ebitmap from attr_type_map to avoid
 *             # double free on policy destroy
 *             self.handle.p.attr_type_map[i].node = NULL             # <<<<<<<<<<<<<<
 *             self.handle.p.attr_type_map[i].highbit = 0
 * 
*/
    (__pyx_v_self->handle->p.attr_type_map[__pyx_v_i]).node = NULL;

    /* "setools/policyrep/selinuxpolicy.pxi":982
 *             # double free on policy destroy
 *             self.handle.p.attr_type_map[i].node = NULL
 *             self.handle.p.attr_type_map[i].highbit = 0             # <<<<<<<<<<<<<<
 * 
 *             # now go through each of the member types, and set
*/
    (__pyx_v_self->handle->p.attr_type_map[__pyx_v_i]).highbit = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":986
 *             # now go through each of the member types, and set
 *             # the reverse mapping
 *             bit = sepol.ebitmap_start(&tmp_type.types, &node)             # <<<<<<<<<<<<<<
 *             while bit < sepol.ebitmap_length(&tmp_type.types):
 *                 if sepol.ebitmap_node_get_bit(node, bit):
*/
    __pyx_v_bit = ebitmap_start((&__pyx_v_tmp_type->types), (&__pyx_v_node));

    /* "setools/policyrep/selinuxpolicy.pxi":987
 *             # the reverse mapping
 *             bit = sepol.ebitmap_start(&tmp_type.types, &node)
 *             while bit < sepol.ebitmap_length(&tmp_type.types):             # <<<<<<<<<<<<<<
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 *                     orig_type = self.handle.p.type_val_to_struct[bit]
*/
    while (1) {
      __pyx_t_6 = (__pyx_v_bit < ebitmap_length((&__pyx_v_tmp_type->types)));
      if (!__pyx_t_6) break;

      /* "setools/policyrep/selinuxpolicy.pxi":988
 *             bit = sepol.ebitmap_start(&tmp_type.types, &node)
 *             while bit < sepol.ebitmap_length(&tmp_type.types):
 *                 if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                     orig_type = self.handle.p.type_val_to_struct[bit]
 *                     ebitmap_set_bit(&orig_type.types, tmp_type.s.value - 1, 1)
*/
      __pyx_t_6 = (ebitmap_node_get_bit(__pyx_v_node, __pyx_v_bit) != 0);
      if (__pyx_t_6) {

        /* "setools/policyrep/selinuxpolicy.pxi":989
 *             while bit < sepol.ebitmap_length(&tmp_type.types):
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 *                     orig_type = self.handle.p.type_val_to_struct[bit]             # <<<<<<<<<<<<<<
 *                     ebitmap_set_bit(&orig_type.types, tmp_type.s.value - 1, 1)
 * 
*/
        __pyx_v_orig_type = (__pyx_v_self->handle->p.type_val_to_struct[__pyx_v_bit]);

        /* "setools/policyrep/selinuxpolicy.pxi":990
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 *                     orig_type = self.handle.p.type_val_to_struct[bit]
 *                     ebitmap_set_bit(&orig_type.types, tmp_type.s.value - 1, 1)             # <<<<<<<<<<<<<<
 * 
 *                 bit = sepol.ebitmap_next(&node, bit)
*/
        __pyx_f_7setools_9policyrep_ebitmap_set_bit((&__pyx_v_orig_type->types), (__pyx_v_tmp_type->s.value - 1), 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 990, __pyx_L1_error)

        /* "setools/policyrep/selinuxpolicy.pxi":988
 *             bit = sepol.ebitmap_start(&tmp_type.types, &node)
 *             while bit < sepol.ebitmap_length(&tmp_type.types):
 *                 if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                     orig_type = self.handle.p.type_val_to_struct[bit]
 *                     ebitmap_set_bit(&orig_type.types, tmp_type.s.value - 1, 1)
*/
      }

      /* "setools/policyrep/selinuxpolicy.pxi":992
 *                     ebitmap_set_bit(&orig_type.types, tmp_type.s.value - 1, 1)
 * 
 *                 bit = sepol.ebitmap_next(&node, bit)             # <<<<<<<<<<<<<<
 * 
 *     cdef _synthesize_attrs(self):
*/
      __pyx_v_bit = ebitmap_next((&__pyx_v_node), __pyx_v_bit);
    }
    __pyx_L3_continue:;
  }

  /* "setools/policyrep/selinuxpolicy.pxi":919
 *             bucket += 1
 * 
 *     cdef _rebuild_attrs_from_map(self):             # <<<<<<<<<<<<<<
 *         """
 *         Rebuilds data for the attributes and inserts them into the policydb.
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._rebuild_attrs_from_map", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":994
 *                 bit = sepol.ebitmap_next(&node, bit)
 * 
 *     cdef _synthesize_attrs(self):             # <<<<<<<<<<<<<<
 *         """
 *         Builds data for empty attributes and inserts them into the policydb.
*/

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__synthesize_attrs(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  size_t __pyx_v_i;
  char *__pyx_v_tmp_name;
  CYTHON_UNUSED char *__pyx_v_buff;
  type_datum_t *__pyx_v_tmp_type;
  ebitmap_t __pyx_v_tmp_bmap;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  uint32_t __pyx_t_4;
  uint32_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_synthesize_attrs", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":1008
 *         cdef:
 *             size_t i
 *             char *tmp_name = NULL             # <<<<<<<<<<<<<<
 *             char *buff = NULL
 *             sepol.type_datum_t *tmp_type = NULL
*/
  __pyx_v_tmp_name = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":1009
 *             size_t i
 *             char *tmp_name = NULL
 *             char *buff = NULL             # <<<<<<<<<<<<<<
 *             sepol.type_datum_t *tmp_type = NULL
 *             sepol.ebitmap_t tmp_bmap
*/
  __pyx_v_buff = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":1010
 *             char *tmp_name = NULL
 *             char *buff = NULL
 *             sepol.type_datum_t *tmp_type = NULL             # <<<<<<<<<<<<<<
 *             sepol.ebitmap_t tmp_bmap
 * 
*/
  __pyx_v_tmp_type = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":1013
 *             sepol.ebitmap_t tmp_bmap
 * 
 *         self.log.debug("Synthesizing missing attributes.")             # <<<<<<<<<<<<<<
 * 
 *         tmp_bmap.node = NULL
*/
  __pyx_t_2 = __pyx_v_self->log;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Synthesizing_missing_attributes};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_debug, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1013, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":1015
 *         self.log.debug("Synthesizing missing attributes.")
 * 
 *         tmp_bmap.node = NULL             # <<<<<<<<<<<<<<
 *         tmp_bmap.highbit = 0
 * 
*/
  __pyx_v_tmp_bmap.node = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":1016
 * 
 *         tmp_bmap.node = NULL
 *         tmp_bmap.highbit = 0             # <<<<<<<<<<<<<<
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
*/
  __pyx_v_tmp_bmap.highbit = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":1018
 *         tmp_bmap.highbit = 0
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):             # <<<<<<<<<<<<<<
 *             if self.handle.p.type_val_to_struct[i] != NULL:
 *                 continue
*/
  __pyx_t_4 = (__pyx_v_self->handle->p.symtab[SYM_TYPES]).nprim;
  __pyx_t_5 = __pyx_t_4;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_5; __pyx_t_3+=1) {
    __pyx_v_i = __pyx_t_3;

    /* "setools/policyrep/selinuxpolicy.pxi":1019
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
 *             if self.handle.p.type_val_to_struct[i] != NULL:             # <<<<<<<<<<<<<<
 *                 continue
 * 
*/
    __pyx_t_6 = ((__pyx_v_self->handle->p.type_val_to_struct[__pyx_v_i]) != NULL);
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":1020
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
 *             if self.handle.p.type_val_to_struct[i] != NULL:
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             tmp_name = <char*>calloc(15, sizeof(char))
*/
      goto __pyx_L3_continue;

      /* "setools/policyrep/selinuxpolicy.pxi":1019
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
 *             if self.handle.p.type_val_to_struct[i] != NULL:             # <<<<<<<<<<<<<<
 *                 continue
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":1022
 *                 continue
 * 
 *             tmp_name = <char*>calloc(15, sizeof(char))             # <<<<<<<<<<<<<<
 *             if tmp_name == NULL:
 *                 raise MemoryError
*/
    __pyx_v_tmp_name = ((char *)calloc(15, (sizeof(char))));

    /* "setools/policyrep/selinuxpolicy.pxi":1023
 * 
 *             tmp_name = <char*>calloc(15, sizeof(char))
 *             if tmp_name == NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError
 * 
*/
    __pyx_t_6 = (__pyx_v_tmp_name == NULL);
    if (unlikely(__pyx_t_6)) {

      /* "setools/policyrep/selinuxpolicy.pxi":1024
 *             tmp_name = <char*>calloc(15, sizeof(char))
 *             if tmp_name == NULL:
 *                 raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *             snprintf(tmp_name, 15, "@ttr%010zd", i + 1)
*/
      PyErr_NoMemory(); __PYX_ERR(5, 1024, __pyx_L1_error)

      /* "setools/policyrep/selinuxpolicy.pxi":1023
 * 
 *             tmp_name = <char*>calloc(15, sizeof(char))
 *             if tmp_name == NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError
 * 
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":1026
 *                 raise MemoryError
 * 
 *             snprintf(tmp_name, 15, "@ttr%010zd", i + 1)             # <<<<<<<<<<<<<<
 * 
 *             tmp_type = <sepol.type_datum_t*>calloc(1, sizeof(sepol.type_datum_t))
*/
    (void)(snprintf(__pyx_v_tmp_name, 15, __pyx_k_ttr_010zd, (__pyx_v_i + 1)));

    /* "setools/policyrep/selinuxpolicy.pxi":1028
 *             snprintf(tmp_name, 15, "@ttr%010zd", i + 1)
 * 
 *             tmp_type = <sepol.type_datum_t*>calloc(1, sizeof(sepol.type_datum_t))             # <<<<<<<<<<<<<<
 *             if tmp_type == NULL:
 *                 free(tmp_name)
*/
    __pyx_v_tmp_type = ((type_datum_t *)calloc(1, (sizeof(type_datum_t))));

    /* "setools/policyrep/selinuxpolicy.pxi":1029
 * 
 *             tmp_type = <sepol.type_datum_t*>calloc(1, sizeof(sepol.type_datum_t))
 *             if tmp_type == NULL:             # <<<<<<<<<<<<<<
 *                 free(tmp_name)
 *                 raise MemoryError
*/
    __pyx_t_6 = (__pyx_v_tmp_type == NULL);
    if (unlikely(__pyx_t_6)) {

      /* "setools/policyrep/selinuxpolicy.pxi":1030
 *             tmp_type = <sepol.type_datum_t*>calloc(1, sizeof(sepol.type_datum_t))
 *             if tmp_type == NULL:
 *                 free(tmp_name)             # <<<<<<<<<<<<<<
 *                 raise MemoryError
 * 
*/
      free(__pyx_v_tmp_name);

      /* "setools/policyrep/selinuxpolicy.pxi":1031
 *             if tmp_type == NULL:
 *                 free(tmp_name)
 *                 raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *             tmp_type.primary = 1
*/
      PyErr_NoMemory(); __PYX_ERR(5, 1031, __pyx_L1_error)

      /* "setools/policyrep/selinuxpolicy.pxi":1029
 * 
 *             tmp_type = <sepol.type_datum_t*>calloc(1, sizeof(sepol.type_datum_t))
 *             if tmp_type == NULL:             # <<<<<<<<<<<<<<
 *                 free(tmp_name)
 *                 raise MemoryError
*/
    }

    /* "setools/policyrep/selinuxpolicy.pxi":1033
 *                 raise MemoryError
 * 
 *             tmp_type.primary = 1             # <<<<<<<<<<<<<<
 *             tmp_type.flavor = sepol.TYPE_ATTRIB
 *             tmp_type.s.value = i + 1
*/
    __pyx_v_tmp_type->primary = 1;

    /* "setools/policyrep/selinuxpolicy.pxi":1034
 * 
 *             tmp_type.primary = 1
 *             tmp_type.flavor = sepol.TYPE_ATTRIB             # <<<<<<<<<<<<<<
 *             tmp_type.s.value = i + 1
 *             tmp_type.types = tmp_bmap
*/
    __pyx_v_tmp_type->flavor = TYPE_ATTRIB;

    /* "setools/policyrep/selinuxpolicy.pxi":1035
 *             tmp_type.primary = 1
 *             tmp_type.flavor = sepol.TYPE_ATTRIB
 *             tmp_type.s.value = i + 1             # <<<<<<<<<<<<<<
 *             tmp_type.types = tmp_bmap
 * 
*/
    __pyx_v_tmp_type->s.value = (__pyx_v_i + 1);

    /* "setools/policyrep/selinuxpolicy.pxi":1036
 *             tmp_type.flavor = sepol.TYPE_ATTRIB
 *             tmp_type.s.value = i + 1
 *             tmp_type.types = tmp_bmap             # <<<<<<<<<<<<<<
 * 
 *             try:
*/
    __pyx_v_tmp_type->types = __pyx_v_tmp_bmap;

    /* "setools/policyrep/selinuxpolicy.pxi":1038
 *             tmp_type.types = tmp_bmap
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 hashtab_insert(self.handle.p.symtab[sepol.SYM_TYPES].table,
 *                                <sepol.hashtab_key_t> tmp_name,
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_9);
      /*try:*/ {

        /* "setools/policyrep/selinuxpolicy.pxi":1039
 * 
 *             try:
 *                 hashtab_insert(self.handle.p.symtab[sepol.SYM_TYPES].table,             # <<<<<<<<<<<<<<
 *                                <sepol.hashtab_key_t> tmp_name,
 *                                <sepol.hashtab_datum_t> tmp_type)
*/
        __pyx_t_10 = __pyx_f_7setools_9policyrep_hashtab_insert((__pyx_v_self->handle->p.symtab[SYM_TYPES]).table, ((hashtab_key_t)__pyx_v_tmp_name), ((hashtab_datum_t)__pyx_v_tmp_type)); if (unlikely(__pyx_t_10 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1039, __pyx_L8_error)

        /* "setools/policyrep/selinuxpolicy.pxi":1038
 *             tmp_type.types = tmp_bmap
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 hashtab_insert(self.handle.p.symtab[sepol.SYM_TYPES].table,
 *                                <sepol.hashtab_key_t> tmp_name,
*/
      }
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L15_try_end;
      __pyx_L8_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":1042
 *                                <sepol.hashtab_key_t> tmp_name,
 *                                <sepol.hashtab_datum_t> tmp_type)
 *             except Exception:             # <<<<<<<<<<<<<<
 *                 free(tmp_name)
 *                 free(tmp_type)
*/
      __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
      if (__pyx_t_10) {
        __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._synthesize_attrs", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_11) < 0) __PYX_ERR(5, 1042, __pyx_L10_except_error)
        __Pyx_XGOTREF(__pyx_t_1);
        __Pyx_XGOTREF(__pyx_t_2);
        __Pyx_XGOTREF(__pyx_t_11);

        /* "setools/policyrep/selinuxpolicy.pxi":1043
 *                                <sepol.hashtab_datum_t> tmp_type)
 *             except Exception:
 *                 free(tmp_name)             # <<<<<<<<<<<<<<
 *                 free(tmp_type)
 *                 raise
*/
        free(__pyx_v_tmp_name);

        /* "setools/policyrep/selinuxpolicy.pxi":1044
 *             except Exception:
 *                 free(tmp_name)
 *                 free(tmp_type)             # <<<<<<<<<<<<<<
 *                 raise
 * 
*/
        free(__pyx_v_tmp_type);

        /* "setools/policyrep/selinuxpolicy.pxi":1045
 *                 free(tmp_name)
 *                 free(tmp_type)
 *                 raise             # <<<<<<<<<<<<<<
 * 
 *             self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] = tmp_name
*/
        __Pyx_GIVEREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_2);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_2, __pyx_t_11);
        __pyx_t_1 = 0;  __pyx_t_2 = 0;  __pyx_t_11 = 0; 
        __PYX_ERR(5, 1045, __pyx_L10_except_error)
      }
      goto __pyx_L10_except_error;

      /* "setools/policyrep/selinuxpolicy.pxi":1038
 *             tmp_type.types = tmp_bmap
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 hashtab_insert(self.handle.p.symtab[sepol.SYM_TYPES].table,
 *                                <sepol.hashtab_key_t> tmp_name,
*/
      __pyx_L10_except_error:;
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      goto __pyx_L1_error;
      __pyx_L15_try_end:;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":1047
 *                 raise
 * 
 *             self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] = tmp_name             # <<<<<<<<<<<<<<
 *             self.handle.p.type_val_to_struct[i] = tmp_type
 * 
*/
    ((__pyx_v_self->handle->p.sym_val_to_name[SYM_TYPES])[__pyx_v_i]) = __pyx_v_tmp_name;

    /* "setools/policyrep/selinuxpolicy.pxi":1048
 * 
 *             self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] = tmp_name
 *             self.handle.p.type_val_to_struct[i] = tmp_type             # <<<<<<<<<<<<<<
 * 
 *             # memory now owned by policydb, do not free
*/
    (__pyx_v_self->handle->p.type_val_to_struct[__pyx_v_i]) = __pyx_v_tmp_type;

    /* "setools/policyrep/selinuxpolicy.pxi":1051
 * 
 *             # memory now owned by policydb, do not free
 *             tmp_name = NULL             # <<<<<<<<<<<<<<
 *             tmp_type = NULL
 * 
*/
    __pyx_v_tmp_name = NULL;

    /* "setools/policyrep/selinuxpolicy.pxi":1052
 *             # memory now owned by policydb, do not free
 *             tmp_name = NULL
 *             tmp_type = NULL             # <<<<<<<<<<<<<<
 * 
 *     cdef _cache_constraint_counts(self):
*/
    __pyx_v_tmp_type = NULL;
    __pyx_L3_continue:;
  }

  /* "setools/policyrep/selinuxpolicy.pxi":994
 *                 bit = sepol.ebitmap_next(&node, bit)
 * 
 *     cdef _synthesize_attrs(self):             # <<<<<<<<<<<<<<
 *         """
 *         Builds data for empty attributes and inserts them into the policydb.
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._synthesize_attrs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_2generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":1057
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())             # <<<<<<<<<<<<<<
 * 
 *     cdef _cache_terule_counts(self):
*/

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_23_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 1057, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_2generator28, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy__cache_constraint, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 1057, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._cache_constraint_counts.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_2generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(5, 1057, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(5, 1057, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1057, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1057, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 1057, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 1057, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1057, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 1057, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_r, __pyx_mstate_global->__pyx_n_u_ruletype); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1057, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 1057, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":1054
 *             tmp_type = NULL
 * 
 *     cdef _cache_constraint_counts(self):             # <<<<<<<<<<<<<<
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:
*/

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_constraint_counts(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_2generator28 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_cache_constraint_counts", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":1056
 *     cdef _cache_constraint_counts(self):
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:             # <<<<<<<<<<<<<<
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->constraint_counts); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 1056, __pyx_L1_error)
  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "setools/policyrep/selinuxpolicy.pxi":1057
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())             # <<<<<<<<<<<<<<
 * 
 *     cdef _cache_terule_counts(self):
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_collections); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1057, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Counter); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 1057, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = ((PyObject *)__pyx_v_self);
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_8 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
      __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_constraints, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1057, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }
    __pyx_t_7 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_genexpr(NULL, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1057, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1057, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->constraint_counts);
    __Pyx_DECREF(__pyx_v_self->constraint_counts);
    __pyx_v_self->constraint_counts = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":1056
 *     cdef _cache_constraint_counts(self):
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:             # <<<<<<<<<<<<<<
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())
 * 
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":1054
 *             tmp_type = NULL
 * 
 *     cdef _cache_constraint_counts(self):             # <<<<<<<<<<<<<<
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._cache_constraint_counts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_2generator28);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":1059
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())
 * 
 *     cdef _cache_terule_counts(self):             # <<<<<<<<<<<<<<
 *         """Count all TE rules in one iteration."""
 *         if not self.terule_counts:
*/

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_terule_counts(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_cache_terule_counts", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":1061
 *     cdef _cache_terule_counts(self):
 *         """Count all TE rules in one iteration."""
 *         if not self.terule_counts:             # <<<<<<<<<<<<<<
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()
 *             self.terule_counts[TERuletype.type_transition.value] += \
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->terule_counts); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 1061, __pyx_L1_error)
  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "setools/policyrep/selinuxpolicy.pxi":1062
 *         """Count all TE rules in one iteration."""
 *         if not self.terule_counts:
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()             # <<<<<<<<<<<<<<
 *             self.terule_counts[TERuletype.type_transition.value] += \
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))
*/
    __pyx_t_5 = __pyx_f_7setools_9policyrep_14TERuleIterator_factory(__pyx_v_self, (&__pyx_v_self->handle->p.te_avtab)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1062, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __pyx_t_5;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_ruletype_count, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1062, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->terule_counts);
    __Pyx_DECREF(__pyx_v_self->terule_counts);
    __pyx_v_self->terule_counts = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":1063
 *         if not self.terule_counts:
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()
 *             self.terule_counts[TERuletype.type_transition.value] += \             # <<<<<<<<<<<<<<
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))
 * 
*/
    __Pyx_INCREF(__pyx_v_self->terule_counts);
    __pyx_t_3 = __pyx_v_self->terule_counts;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1063, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_type_transition); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1063, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1063, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1063, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "setools/policyrep/selinuxpolicy.pxi":1064
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()
 *             self.terule_counts[TERuletype.type_transition.value] += \
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))             # <<<<<<<<<<<<<<
 * 
 *             for c in self.conditionals():
*/
    __pyx_t_7 = __pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory(__pyx_v_self, (&__pyx_v_self->handle->p.filename_trans)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1064, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1064, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyLong_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1064, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);

    /* "setools/policyrep/selinuxpolicy.pxi":1063
 *         if not self.terule_counts:
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()
 *             self.terule_counts[TERuletype.type_transition.value] += \             # <<<<<<<<<<<<<<
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))
 * 
*/
    __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1063, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_t_5, __pyx_t_9) < 0))) __PYX_ERR(5, 1063, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":1066
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))
 * 
 *             for c in self.conditionals():             # <<<<<<<<<<<<<<
 *                 self.terule_counts.update(c.true_rules().ruletype_count())
 *                 self.terule_counts.update(c.false_rules().ruletype_count())
*/
    __pyx_t_5 = ((PyObject *)__pyx_v_self);
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_conditionals, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1066, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5);
      __pyx_t_8 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1066, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 1066, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 1066, __pyx_L1_error)
            #endif
            if (__pyx_t_8 >= __pyx_temp) break;
          }
          __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference);
          ++__pyx_t_8;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 1066, __pyx_L1_error)
            #endif
            if (__pyx_t_8 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_8));
          #else
          __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_8);
          #endif
          ++__pyx_t_8;
        }
        if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1066, __pyx_L1_error)
      } else {
        __pyx_t_3 = __pyx_t_10(__pyx_t_5);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 1066, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":1067
 * 
 *             for c in self.conditionals():
 *                 self.terule_counts.update(c.true_rules().ruletype_count())             # <<<<<<<<<<<<<<
 *                 self.terule_counts.update(c.false_rules().ruletype_count())
*/
      __pyx_t_9 = __pyx_v_self->terule_counts;
      __Pyx_INCREF(__pyx_t_9);
      __pyx_t_12 = __pyx_v_c;
      __Pyx_INCREF(__pyx_t_12);
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, NULL};
        __pyx_t_11 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_true_rules, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1067, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
      }
      __pyx_t_4 = __pyx_t_11;
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
        __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_ruletype_count, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1067, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
      }
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
        __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1067, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":1068
 *             for c in self.conditionals():
 *                 self.terule_counts.update(c.true_rules().ruletype_count())
 *                 self.terule_counts.update(c.false_rules().ruletype_count())             # <<<<<<<<<<<<<<
*/
      __pyx_t_7 = __pyx_v_self->terule_counts;
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_12 = __pyx_v_c;
      __Pyx_INCREF(__pyx_t_12);
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, NULL};
        __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_false_rules, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_t_11 = __pyx_t_4;
      __Pyx_INCREF(__pyx_t_11);
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
        __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_ruletype_count, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
      }
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_9};
        __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":1066
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))
 * 
 *             for c in self.conditionals():             # <<<<<<<<<<<<<<
 *                 self.terule_counts.update(c.true_rules().ruletype_count())
 *                 self.terule_counts.update(c.false_rules().ruletype_count())
*/
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":1061
 *     cdef _cache_terule_counts(self):
 *         """Count all TE rules in one iteration."""
 *         if not self.terule_counts:             # <<<<<<<<<<<<<<
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()
 *             self.terule_counts[TERuletype.type_transition.value] += \
*/
  }

  /* "setools/policyrep/selinuxpolicy.pxi":1059
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())
 * 
 *     cdef _cache_terule_counts(self):             # <<<<<<<<<<<<<<
 *         """Count all TE rules in one iteration."""
 *         if not self.terule_counts:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._cache_terule_counts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":41
 * 
 *         # Public attributes:
 *         readonly str path             # <<<<<<<<<<<<<<
 *         readonly object handle_unknown
 *         readonly object target_platform
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_4path_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_4path_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_4path___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_4path___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->path);
  __pyx_r = __pyx_v_self->path;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":42
 *         # Public attributes:
 *         readonly str path
 *         readonly object handle_unknown             # <<<<<<<<<<<<<<
 *         readonly object target_platform
 *         readonly unsigned int version
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14handle_unknown_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14handle_unknown_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14handle_unknown___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14handle_unknown___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->handle_unknown);
  __pyx_r = __pyx_v_self->handle_unknown;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":43
 *         readonly str path
 *         readonly object handle_unknown
 *         readonly object target_platform             # <<<<<<<<<<<<<<
 *         readonly unsigned int version
 *         readonly bint mls
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15target_platform_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15target_platform_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_15target_platform___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15target_platform___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->target_platform);
  __pyx_r = __pyx_v_self->target_platform;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":44
 *         readonly object handle_unknown
 *         readonly object target_platform
 *         readonly unsigned int version             # <<<<<<<<<<<<<<
 *         readonly bint mls
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_7version_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_7version_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_7version___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_7version___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_unsigned_int(__pyx_v_self->version); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.version.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":45
 *         readonly object target_platform
 *         readonly unsigned int version
 *         readonly bint mls             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, policyfile=None):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_3mls_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_3mls_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_3mls___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_3mls___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->mls); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.mls.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_104__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_104__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_104__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_104__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_103__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_103__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_106__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13SELinuxPolicy_106__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_106__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_106__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_105__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_105__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":45
 *         bint _conditional_block
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def filename(self):
 *         """The type_transition rule's file name."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_8filename_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_8filename_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_8filename___get__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_8filename___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":50
 *         # Since name type_transitions have a different
 *         # class, this is always an error.
 *         if self.ruletype == TERuletype.type_transition:             # <<<<<<<<<<<<<<
 *             raise TERuleNoFilename
 *         else:
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_transition); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->__pyx_base.ruletype, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(21, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_3)) {

    /* "setools/policyrep/terule.pxi":51
 *         # class, this is always an error.
 *         if self.ruletype == TERuletype.type_transition:
 *             raise TERuleNoFilename             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuleUseError(f"{self.ruletype} rules do not have file names")
*/
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuleNoFilename); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(21, 51, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":50
 *         # Since name type_transitions have a different
 *         # class, this is always an error.
 *         if self.ruletype == TERuletype.type_transition:             # <<<<<<<<<<<<<<
 *             raise TERuleNoFilename
 *         else:
*/
  }

  /* "setools/policyrep/terule.pxi":53
 *             raise TERuleNoFilename
 *         else:
 *             raise RuleUseError(f"{self.ruletype} rules do not have file names")             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  /*else*/ {
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 53, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 53, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_rules_do_not_have_file_names); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 53, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 53, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(21, 53, __pyx_L1_error)
  }

  /* "setools/policyrep/terule.pxi":45
 *         bint _conditional_block
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def filename(self):
 *         """The type_transition rule's file name."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.filename.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":55
 *             raise RuleUseError(f"{self.ruletype} rules do not have file names")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def conditional(self):
 *         """The rule's conditional expression."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_11conditional_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_11conditional_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_11conditional___get__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_11conditional___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":58
 *     def conditional(self):
 *         """The rule's conditional expression."""
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             raise RuleNotConditional
 *         else:
*/
  __pyx_t_1 = (((PyObject *)__pyx_v_self->_conditional) == Py_None);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":59
 *         """The rule's conditional expression."""
 *         if self._conditional is None:
 *             raise RuleNotConditional             # <<<<<<<<<<<<<<
 *         else:
 *             return self._conditional
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RuleNotConditional); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(21, 59, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":58
 *     def conditional(self):
 *         """The rule's conditional expression."""
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             raise RuleNotConditional
 *         else:
*/
  }

  /* "setools/policyrep/terule.pxi":61
 *             raise RuleNotConditional
 *         else:
 *             return self._conditional             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_self->_conditional);
    __pyx_r = ((PyObject *)__pyx_v_self->_conditional);
    goto __pyx_L0;
  }

  /* "setools/policyrep/terule.pxi":55
 *             raise RuleUseError(f"{self.ruletype} rules do not have file names")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def conditional(self):
 *         """The rule's conditional expression."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.conditional.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":63
 *             return self._conditional
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def conditional_block(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_17conditional_block_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_17conditional_block_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_17conditional_block___get__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_17conditional_block___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":76
 *         }
 *         """
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             raise RuleNotConditional
 *         else:
*/
  __pyx_t_1 = (((PyObject *)__pyx_v_self->_conditional) == Py_None);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":77
 *         """
 *         if self._conditional is None:
 *             raise RuleNotConditional             # <<<<<<<<<<<<<<
 *         else:
 *             return self._conditional_block
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RuleNotConditional); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(21, 77, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":76
 *         }
 *         """
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             raise RuleNotConditional
 *         else:
*/
  }

  /* "setools/policyrep/terule.pxi":79
 *             raise RuleNotConditional
 *         else:
 *             return self._conditional_block             # <<<<<<<<<<<<<<
 * 
 *     def enabled(self, **kwargs):
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->_conditional_block); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/terule.pxi":63
 *             return self._conditional
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def conditional_block(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.conditional_block.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":81
 *             return self._conditional_block
 * 
 *     def enabled(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Determine if the rule is enabled, given the stated boolean values.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_1enabled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_10BaseTERule_enabled, "\n        Determine if the rule is enabled, given the stated boolean values.\n\n        Keyword Parameters: bool_name=True|False\n        Each keyword parameter name corresponds to a Boolean name\n        in the expression and the state to use in the evaluation.\n        If a Boolean value is not set, its default value is used.\n        Extra values are ignored.\n\n        Return:     bool\n        ");
static PyMethodDef __pyx_mdef_7setools_9policyrep_10BaseTERule_1enabled = {"enabled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10BaseTERule_1enabled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_10BaseTERule_enabled};
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_1enabled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_kwargs = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enabled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("enabled", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (__pyx_kwds_len > 0) {
    if (unlikely(__Pyx_CheckKeywordStrings("enabled", __pyx_kwds) == -1)) return NULL;
    __pyx_v_kwargs = __Pyx_KwargsAsDict_FASTCALL(__pyx_kwds, __pyx_kwvalues);
    if (unlikely(!__pyx_v_kwargs)) return NULL;
    __Pyx_GOTREF(__pyx_v_kwargs);
  } else {
    __pyx_v_kwargs = PyDict_New();
    if (unlikely(!__pyx_v_kwargs)) return NULL;
    __Pyx_GOTREF(__pyx_v_kwargs);
  }
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_enabled(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self), __pyx_v_kwargs);

  /* function exit code */
  __Pyx_DECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_enabled(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self, PyObject *__pyx_v_kwargs) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("enabled", 0);

  /* "setools/policyrep/terule.pxi":93
 *         Return:     bool
 *         """
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             return True
 * 
*/
  __pyx_t_1 = (((PyObject *)__pyx_v_self->_conditional) == Py_None);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":94
 *         """
 *         if self._conditional is None:
 *             return True             # <<<<<<<<<<<<<<
 * 
 *         if self._conditional.evaluate(**kwargs):
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":93
 *         Return:     bool
 *         """
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             return True
 * 
*/
  }

  /* "setools/policyrep/terule.pxi":96
 *             return True
 * 
 *         if self._conditional.evaluate(**kwargs):             # <<<<<<<<<<<<<<
 *             return self._conditional_block
 *         else:
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_conditional), __pyx_mstate_global->__pyx_n_u_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(21, 96, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":97
 * 
 *         if self._conditional.evaluate(**kwargs):
 *             return self._conditional_block             # <<<<<<<<<<<<<<
 *         else:
 *             return not self._conditional_block
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_self->_conditional_block); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":96
 *             return True
 * 
 *         if self._conditional.evaluate(**kwargs):             # <<<<<<<<<<<<<<
 *             return self._conditional_block
 *         else:
*/
  }

  /* "setools/policyrep/terule.pxi":99
 *             return self._conditional_block
 *         else:
 *             return not self._conditional_block             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyBool_FromLong((!__pyx_v_self->_conditional_block)); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/terule.pxi":81
 *             return self._conditional_block
 * 
 *     def enabled(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Determine if the rule is enabled, given the stated boolean values.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.enabled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":101
 *             return not self._conditional_block
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def extended(self):
 *         """Whether the rule is an extended permission rule."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_8extended_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_8extended_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_8extended___get__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_8extended___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":104
 *     def extended(self):
 *         """Whether the rule is an extended permission rule."""
 *         return self._xperm_type is not None             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = (__pyx_v_self->_xperm_type != ((PyObject*)Py_None));
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":101
 *             return not self._conditional_block
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def extended(self):
 *         """Whether the rule is an extended permission rule."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.extended.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":106
 *         return self._xperm_type is not None
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xperm_type(self):
 *         """The rule's extended permission type."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_10xperm_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_10xperm_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_10xperm_type___get__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_10xperm_type___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":109
 *     def xperm_type(self):
 *         """The rule's extended permission type."""
 *         if self._xperm_type is None:             # <<<<<<<<<<<<<<
 *             raise RuleUseError(f"{self.ruletype} rules do not have an extended permission type.")
 *         else:
*/
  __pyx_t_1 = (__pyx_v_self->_xperm_type == ((PyObject*)Py_None));
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":110
 *         """The rule's extended permission type."""
 *         if self._xperm_type is None:
 *             raise RuleUseError(f"{self.ruletype} rules do not have an extended permission type.")             # <<<<<<<<<<<<<<
 *         else:
 *             return self._xperm_type
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_rules_do_not_have_an_extended_p); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 110, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(21, 110, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":109
 *     def xperm_type(self):
 *         """The rule's extended permission type."""
 *         if self._xperm_type is None:             # <<<<<<<<<<<<<<
 *             raise RuleUseError(f"{self.ruletype} rules do not have an extended permission type.")
 *         else:
*/
  }

  /* "setools/policyrep/terule.pxi":112
 *             raise RuleUseError(f"{self.ruletype} rules do not have an extended permission type.")
 *         else:
 *             return self._xperm_type             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_self->_xperm_type);
    __pyx_r = __pyx_v_self->_xperm_type;
    goto __pyx_L0;
  }

  /* "setools/policyrep/terule.pxi":106
 *         return self._xperm_type is not None
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xperm_type(self):
 *         """The rule's extended permission type."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.xperm_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":39
 * 
 *     cdef:
 *         readonly ObjClass tclass             # <<<<<<<<<<<<<<
 *         str rule_string
 *         str _xperm_type
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_6tclass_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_6tclass___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->tclass);
  __pyx_r = ((PyObject *)__pyx_v_self->tclass);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10BaseTERule_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10BaseTERule_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_conditional_block); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.extended); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(12); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_conditional);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_conditional);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self->_conditional)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_xperm_type);
  __Pyx_GIVEREF(__pyx_v_self->_xperm_type);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_self->_xperm_type) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_3) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_v_self->__pyx_base.origin) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 6, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->rule_string);
  __Pyx_GIVEREF(__pyx_v_self->rule_string);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 7, __pyx_v_self->rule_string) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 8, __pyx_v_self->__pyx_base.ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.source);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 9, __pyx_v_self->__pyx_base.source) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.target);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 10, __pyx_v_self->__pyx_base.target) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 11, ((PyObject *)__pyx_v_self->tclass)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0xd397518, None), state
*/
  /*else*/ {
    __pyx_t_6 = (((PyObject *)__pyx_v_self->_conditional) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->_xperm_type != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.origin != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->rule_string != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.source != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.target != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->tclass) != Py_None);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseTERule, (type(self), 0xd397518, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0xd397518, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0xd397518, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseTERule); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_221869336);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_221869336);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_221869336) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseTERule, (type(self), 0xd397518, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_BaseTERule, (type(self), 0xd397518, None), state
 *     else:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0xd397518, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseTERule__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseTERule); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_221869336);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_221869336);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_221869336) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0xd397518, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseTERule__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10BaseTERule_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10BaseTERule_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_BaseTERule, (type(self), 0xd397518, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseTERule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseTERule__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0xd397518, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseTERule__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_7factory_2generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":132
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,             # <<<<<<<<<<<<<<
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional
*/

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_7factory_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_24_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 132, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_6AVRule_7factory_2generator29, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_AVRule_factory_locals_genexpr, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(21, 132, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.AVRule.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_7factory_2generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(21, 132, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(21, 132, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 132, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 132, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 132, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 132, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(21, 132, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_p);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_p, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_p);
    __pyx_r = __pyx_cur_scope->__pyx_v_p;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 132, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":121
 *     cdef readonly frozenset perms
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline AVRule factory(SELinuxPolicy policy, sepol.avtab_key_t *key, sepol.avtab_datum_t *datum,
 *                                conditional, conditional_block):
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_f_7setools_9policyrep_6AVRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block) {
  struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_r = 0;
  PyObject *__pyx_v_rule_string = NULL;
  PyObject *__pyx_gb_7setools_9policyrep_6AVRule_7factory_2generator29 = 0;
  struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  type_datum_t *__pyx_t_6;
  class_datum_t *__pyx_t_7;
  uint32_t __pyx_t_8;
  int __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11[8];
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16[4];
  int __pyx_t_17;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":125
 *                                conditional, conditional_block):
 *         """Factory function for creating AVRule objects."""
 *         cdef AVRule r = AVRule.__new__(AVRule)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>key
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_AVRule(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRule), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 125, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":126
 *         """Factory function for creating AVRule objects."""
 *         cdef AVRule r = AVRule.__new__(AVRule)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":127
 *         cdef AVRule r = AVRule.__new__(AVRule)
 *         r.policy = policy
 *         r.key = <uintptr_t>key             # <<<<<<<<<<<<<<
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
*/
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_key);

  /* "setools/policyrep/terule.pxi":128
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)             # <<<<<<<<<<<<<<
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_key->specified & (~AVTAB_ENABLED))); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":129
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
*/
  __pyx_t_6 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->source_type - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 129, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_t_6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __pyx_v_r->__pyx_base.__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":130
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,
*/
  __pyx_t_6 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->target_type - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 130, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_t_6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __pyx_v_r->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":131
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))             # <<<<<<<<<<<<<<
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
*/
  __pyx_t_7 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_key->target_class - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 131, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_t_7)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.tclass);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.tclass);
  __pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":132
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,             # <<<<<<<<<<<<<<
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_r->__pyx_base.tclass);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/terule.pxi":133
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))             # <<<<<<<<<<<<<<
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
*/
  __pyx_t_9 = ((__pyx_v_key->specified & AVTAB_AUDITDENY) != 0);
  if (__pyx_t_9) {
    __pyx_t_8 = (~__pyx_v_datum->data);
  } else {
    __pyx_t_8 = __pyx_v_datum->data;
  }

  /* "setools/policyrep/terule.pxi":132
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,             # <<<<<<<<<<<<<<
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_24PermissionVectorIterator_factory(__pyx_v_policy, ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1), __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_6AVRule_7factory_genexpr(NULL, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFrozenSet_New(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_r->perms);
  __Pyx_DECREF(__pyx_v_r->perms);
  __pyx_v_r->perms = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":134
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional             # <<<<<<<<<<<<<<
 *         r._conditional_block = conditional_block
 *         r.origin = None
*/
  __pyx_t_3 = __pyx_v_conditional;
  __Pyx_INCREF(__pyx_t_3);
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(21, 134, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base._conditional);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base._conditional);
  __pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":135
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block             # <<<<<<<<<<<<<<
 *         r.origin = None
 * 
*/
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_conditional_block); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(21, 135, __pyx_L1_error)
  __pyx_v_r->__pyx_base._conditional_block = __pyx_t_9;

  /* "setools/policyrep/terule.pxi":136
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
 *         r.origin = None             # <<<<<<<<<<<<<<
 * 
 *         if not r.perms:
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __pyx_v_r->__pyx_base.__pyx_base.origin = Py_None;

  /* "setools/policyrep/terule.pxi":138
 *         r.origin = None
 * 
 *         if not r.perms:             # <<<<<<<<<<<<<<
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {{ }};"
 *             try:
*/
  if (__pyx_v_r->perms == Py_None) __pyx_t_9 = 0;
  else
  {
    Py_ssize_t __pyx_temp = __Pyx_PySet_GET_SIZE(__pyx_v_r->perms);
    if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(21, 138, __pyx_L1_error)
    __pyx_t_9 = (__pyx_temp != 0);
  }

  __pyx_t_10 = (!__pyx_t_9);
  if (__pyx_t_10) {

    /* "setools/policyrep/terule.pxi":139
 * 
 *         if not r.perms:
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {{ }};"             # <<<<<<<<<<<<<<
 *             try:
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"
*/
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_r->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 139, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_r->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 139, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_r->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 139, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_r->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 139, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_11[0] = __pyx_t_3;
    __pyx_t_11[1] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_11[2] = __pyx_t_1;
    __pyx_t_11[3] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_11[4] = __pyx_t_4;
    __pyx_t_11[5] = __pyx_mstate_global->__pyx_kp_u__13;
    __pyx_t_11[6] = __pyx_t_2;
    __pyx_t_11[7] = __pyx_mstate_global->__pyx_kp_u__32;
    __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_11, 8, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 5, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
    if (unlikely(!__pyx_t_12)) __PYX_ERR(21, 139, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_rule_string = ((PyObject*)__pyx_t_12);
    __pyx_t_12 = 0;

    /* "setools/policyrep/terule.pxi":140
 *         if not r.perms:
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {{ }};"
 *             try:             # <<<<<<<<<<<<<<
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"
 *             except RuleNotConditional:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15);
      __Pyx_XGOTREF(__pyx_t_13);
      __Pyx_XGOTREF(__pyx_t_14);
      __Pyx_XGOTREF(__pyx_t_15);
      /*try:*/ {

        /* "setools/policyrep/terule.pxi":141
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {{ }};"
 *             try:
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"             # <<<<<<<<<<<<<<
 *             except RuleNotConditional:
 *                 pass
*/
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_r), __pyx_mstate_global->__pyx_n_u_conditional); if (unlikely(!__pyx_t_12)) __PYX_ERR(21, 141, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_t_12, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 141, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_r), __pyx_mstate_global->__pyx_n_u_conditional_block); if (unlikely(!__pyx_t_12)) __PYX_ERR(21, 141, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_12, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 141, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_16[0] = __pyx_mstate_global->__pyx_kp_u__33;
        __pyx_t_16[1] = __pyx_t_2;
        __pyx_t_16[2] = __pyx_mstate_global->__pyx_kp_u__34;
        __pyx_t_16[3] = __pyx_t_4;
        __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_16, 4, 3 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
        if (unlikely(!__pyx_t_12)) __PYX_ERR(21, 141, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_rule_string, __pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 141, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF_SET(__pyx_v_rule_string, ((PyObject*)__pyx_t_4));
        __pyx_t_4 = 0;

        /* "setools/policyrep/terule.pxi":140
 *         if not r.perms:
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {{ }};"
 *             try:             # <<<<<<<<<<<<<<
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"
 *             except RuleNotConditional:
*/
      }
      __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "setools/policyrep/terule.pxi":142
 *             try:
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"
 *             except RuleNotConditional:             # <<<<<<<<<<<<<<
 *                 pass
 * 
*/
      __Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_12, &__pyx_t_2);
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_RuleNotConditional); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 142, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_17 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_4, __pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_ErrRestore(__pyx_t_4, __pyx_t_12, __pyx_t_2);
      __pyx_t_4 = 0; __pyx_t_12 = 0; __pyx_t_2 = 0;
      if (__pyx_t_17) {
        __Pyx_ErrRestore(0,0,0);
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;

      /* "setools/policyrep/terule.pxi":140
 *         if not r.perms:
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {{ }};"
 *             try:             # <<<<<<<<<<<<<<
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"
 *             except RuleNotConditional:
*/
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_13);
      __Pyx_XGIVEREF(__pyx_t_14);
      __Pyx_XGIVEREF(__pyx_t_15);
      __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15);
      goto __pyx_L1_error;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_13);
      __Pyx_XGIVEREF(__pyx_t_14);
      __Pyx_XGIVEREF(__pyx_t_15);
      __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15);
      __pyx_L9_try_end:;
    }

    /* "setools/policyrep/terule.pxi":145
 *                 pass
 * 
 *             raise LowLevelPolicyError("Invalid policy: Found a rule with no permissions: "             # <<<<<<<<<<<<<<
 *                                       f"{rule_string}")
 * 
*/
    __pyx_t_12 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_LowLevelPolicyError); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "setools/policyrep/terule.pxi":146
 * 
 *             raise LowLevelPolicyError("Invalid policy: Found a rule with no permissions: "
 *                                       f"{rule_string}")             # <<<<<<<<<<<<<<
 * 
 *         return r
*/
    __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Invalid_policy_Found_a_rule_with, __pyx_v_rule_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_12);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_1};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(21, 145, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":138
 *         r.origin = None
 * 
 *         if not r.perms:             # <<<<<<<<<<<<<<
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {{ }};"
 *             try:
*/
  }

  /* "setools/policyrep/terule.pxi":148
 *                                       f"{rule_string}")
 * 
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":121
 *     cdef readonly frozenset perms
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline AVRule factory(SELinuxPolicy policy, sepol.avtab_key_t *key, sepol.avtab_datum_t *datum,
 *                                conditional, conditional_block):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("setools.policyrep.AVRule.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XDECREF(__pyx_v_rule_string);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_6AVRule_7factory_2generator29);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":150
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self._conditional}|{self._conditional_block}")
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_6AVRule_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_6AVRule_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule___hash__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_6AVRule___hash__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[11];
  PyObject *__pyx_t_8 = NULL;
  Py_hash_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/terule.pxi":152
 *     def __hash__(self):
 *         return hash(
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self._conditional}|{self._conditional_block}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base._conditional), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyUnicode_FromBInt_bint(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7[0] = __pyx_t_1;
  __pyx_t_7[1] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_7[2] = __pyx_t_2;
  __pyx_t_7[3] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_7[4] = __pyx_t_3;
  __pyx_t_7[5] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_7[6] = __pyx_t_4;
  __pyx_t_7[7] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_7[8] = __pyx_t_5;
  __pyx_t_7[9] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_7[10] = __pyx_t_6;
  __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 11, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 5 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
  if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "setools/policyrep/terule.pxi":151
 * 
 *     def __hash__(self):
 *         return hash(             # <<<<<<<<<<<<<<
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self._conditional}|{self._conditional_block}")
 * 
*/
  __pyx_t_9 = PyObject_Hash(__pyx_t_8); if (unlikely(__pyx_t_9 == ((Py_hash_t)-1))) __PYX_ERR(21, 151, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_r = __pyx_t_9;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":150
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self._conditional}|{self._conditional_block}")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.AVRule.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":154
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self._conditional}|{self._conditional_block}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_2__lt__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_2__lt__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/terule.pxi":155
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 155, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":154
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self._conditional}|{self._conditional_block}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.AVRule.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":157
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default type."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_7default_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_7default___get__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_7default___get__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":160
 *     def default(self):
 *         """The rule's default type."""
 *         raise RuleUseError(f"{self.ruletype} rules do not have a default type.")             # <<<<<<<<<<<<<<
 * 
 *     def derive_expanded(self, BaseType source, BaseType target, perms):
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_rules_do_not_have_a_default_typ); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(21, 160, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":157
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default type."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.AVRule.default.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":162
 *         raise RuleUseError(f"{self.ruletype} rules do not have a default type.")
 * 
 *     def derive_expanded(self, BaseType source, BaseType target, perms):             # <<<<<<<<<<<<<<
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_5derive_expanded(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_6AVRule_4derive_expanded, "Derive an expanded rule from source, target, and perms.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_6AVRule_5derive_expanded = {"derive_expanded", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6AVRule_5derive_expanded, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_6AVRule_4derive_expanded};
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_5derive_expanded(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_source = 0;
  struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_target = 0;
  PyObject *__pyx_v_perms = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("derive_expanded (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_source,&__pyx_mstate_global->__pyx_n_u_target,&__pyx_mstate_global->__pyx_n_u_perms,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(21, 162, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(21, 162, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(21, 162, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 162, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "derive_expanded", 0) < (0)) __PYX_ERR(21, 162, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("derive_expanded", 1, 3, 3, i); __PYX_ERR(21, 162, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 162, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(21, 162, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(21, 162, __pyx_L3_error)
    }
    __pyx_v_source = ((struct __pyx_obj_7setools_9policyrep_BaseType *)values[0]);
    __pyx_v_target = ((struct __pyx_obj_7setools_9policyrep_BaseType *)values[1]);
    __pyx_v_perms = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("derive_expanded", 1, 3, 3, __pyx_nargs); __PYX_ERR(21, 162, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.AVRule.derive_expanded", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_source), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType, 1, "source", 0))) __PYX_ERR(21, 162, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_target), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType, 1, "target", 0))) __PYX_ERR(21, 162, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_4derive_expanded(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self), __pyx_v_source, __pyx_v_target, __pyx_v_perms);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_15derive_expanded_2generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":182
 *         r.target = target
 *         r.tclass = self.tclass
 *         r.perms = frozenset(p for p in perms)             # <<<<<<<<<<<<<<
 *         r._conditional = self._conditional
 *         r._conditional_block = self._conditional_block
*/

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_15derive_expanded_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_25_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 182, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_6AVRule_15derive_expanded_2generator30, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_derive_expanded_locals_genexpr, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(21, 182, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.AVRule.derive_expanded.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_15derive_expanded_2generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(21, 182, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(21, 182, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 182, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 182, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 182, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 182, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 182, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(21, 182, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_p);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_p, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_p);
    __pyx_r = __pyx_cur_scope->__pyx_v_p;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 182, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":162
 *         raise RuleUseError(f"{self.ruletype} rules do not have a default type.")
 * 
 *     def derive_expanded(self, BaseType source, BaseType target, perms):             # <<<<<<<<<<<<<<
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
*/

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_4derive_expanded(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_source, struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_target, PyObject *__pyx_v_perms) {
  struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_r = 0;
  PyObject *__pyx_gb_7setools_9policyrep_6AVRule_15derive_expanded_2generator30 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10[5];
  PyObject *__pyx_t_11 = NULL;
  uintptr_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("derive_expanded", 0);

  /* "setools/policyrep/terule.pxi":165
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
 *         if self.origin is not None:             # <<<<<<<<<<<<<<
 *             raise RuleUseError(f"{self.ruletype} rule is already expanded.")
 * 
*/
  __pyx_t_1 = (__pyx_v_self->__pyx_base.__pyx_base.origin != Py_None);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":166
 *         cdef AVRule r
 *         if self.origin is not None:
 *             raise RuleUseError(f"{self.ruletype} rule is already expanded.")             # <<<<<<<<<<<<<<
 * 
 *         if source is not self.source and source not in self.source:
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_rule_is_already_expanded); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 166, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(21, 166, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":165
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
 *         if self.origin is not None:             # <<<<<<<<<<<<<<
 *             raise RuleUseError(f"{self.ruletype} rule is already expanded.")
 * 
*/
  }

  /* "setools/policyrep/terule.pxi":168
 *             raise RuleUseError(f"{self.ruletype} rule is already expanded.")
 * 
 *         if source is not self.source and source not in self.source:             # <<<<<<<<<<<<<<
 *             raise RuleUseError(f"{source} is not {self.source} and is not in {self.source}")
 *         if target is not self.target and target not in self.target:
*/
  __pyx_t_8 = (((PyObject *)__pyx_v_source) != __pyx_v_self->__pyx_base.__pyx_base.source);
  if (__pyx_t_8) {
  } else {
    __pyx_t_1 = __pyx_t_8;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_source), __pyx_v_self->__pyx_base.__pyx_base.source, Py_NE)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(21, 168, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_8;
  __pyx_L5_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":169
 * 
 *         if source is not self.source and source not in self.source:
 *             raise RuleUseError(f"{source} is not {self.source} and is not in {self.source}")             # <<<<<<<<<<<<<<
 *         if target is not self.target and target not in self.target:
 *             raise RuleUseError(f"{target} is not {self.target} and is not in {self.target}")
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_source), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10[0] = __pyx_t_3;
    __pyx_t_10[1] = __pyx_mstate_global->__pyx_kp_u_is_not;
    __pyx_t_10[2] = __pyx_t_5;
    __pyx_t_10[3] = __pyx_mstate_global->__pyx_kp_u_and_is_not_in;
    __pyx_t_10[4] = __pyx_t_9;
    __pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_10, 5, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9));
    if (unlikely(!__pyx_t_11)) __PYX_ERR(21, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_11};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(21, 169, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":168
 *             raise RuleUseError(f"{self.ruletype} rule is already expanded.")
 * 
 *         if source is not self.source and source not in self.source:             # <<<<<<<<<<<<<<
 *             raise RuleUseError(f"{source} is not {self.source} and is not in {self.source}")
 *         if target is not self.target and target not in self.target:
*/
  }

  /* "setools/policyrep/terule.pxi":170
 *         if source is not self.source and source not in self.source:
 *             raise RuleUseError(f"{source} is not {self.source} and is not in {self.source}")
 *         if target is not self.target and target not in self.target:             # <<<<<<<<<<<<<<
 *             raise RuleUseError(f"{target} is not {self.target} and is not in {self.target}")
 *         # No reasonable perms check possible as perms can be disjoint
*/
  __pyx_t_8 = (((PyObject *)__pyx_v_target) != __pyx_v_self->__pyx_base.__pyx_base.target);
  if (__pyx_t_8) {
  } else {
    __pyx_t_1 = __pyx_t_8;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_target), __pyx_v_self->__pyx_base.__pyx_base.target, Py_NE)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(21, 170, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_8;
  __pyx_L8_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":171
 *             raise RuleUseError(f"{source} is not {self.source} and is not in {self.source}")
 *         if target is not self.target and target not in self.target:
 *             raise RuleUseError(f"{target} is not {self.target} and is not in {self.target}")             # <<<<<<<<<<<<<<
 *         # No reasonable perms check possible as perms can be disjoint
 *         # from self.perms when redundant perms are removed.
*/
    __pyx_t_6 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_11)) __PYX_ERR(21, 171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_target), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10[0] = __pyx_t_4;
    __pyx_t_10[1] = __pyx_mstate_global->__pyx_kp_u_is_not;
    __pyx_t_10[2] = __pyx_t_9;
    __pyx_t_10[3] = __pyx_mstate_global->__pyx_kp_u_and_is_not_in;
    __pyx_t_10[4] = __pyx_t_5;
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_10, 5, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
    if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11);
      assert(__pyx_t_6);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 171, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(21, 171, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":170
 *         if source is not self.source and source not in self.source:
 *             raise RuleUseError(f"{source} is not {self.source} and is not in {self.source}")
 *         if target is not self.target and target not in self.target:             # <<<<<<<<<<<<<<
 *             raise RuleUseError(f"{target} is not {self.target} and is not in {self.target}")
 *         # No reasonable perms check possible as perms can be disjoint
*/
  }

  /* "setools/policyrep/terule.pxi":175
 *         # from self.perms when redundant perms are removed.
 * 
 *         r = AVRule.__new__(AVRule)             # <<<<<<<<<<<<<<
 *         r.policy = self.policy
 *         r.key = self.key
*/
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_AVRule(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRule), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 175, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":176
 * 
 *         r = AVRule.__new__(AVRule)
 *         r.policy = self.policy             # <<<<<<<<<<<<<<
 *         r.key = self.key
 *         r.ruletype = self.ruletype
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":177
 *         r = AVRule.__new__(AVRule)
 *         r.policy = self.policy
 *         r.key = self.key             # <<<<<<<<<<<<<<
 *         r.ruletype = self.ruletype
 *         r.source = source
*/
  __pyx_t_12 = __pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key;
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_12;

  /* "setools/policyrep/terule.pxi":178
 *         r.policy = self.policy
 *         r.key = self.key
 *         r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *         r.source = source
 *         r.target = target
*/
  __pyx_t_2 = __pyx_v_self->__pyx_base.__pyx_base.ruletype;
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":179
 *         r.key = self.key
 *         r.ruletype = self.ruletype
 *         r.source = source             # <<<<<<<<<<<<<<
 *         r.target = target
 *         r.tclass = self.tclass
*/
  __Pyx_INCREF((PyObject *)__pyx_v_source);
  __Pyx_GIVEREF((PyObject *)__pyx_v_source);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __pyx_v_r->__pyx_base.__pyx_base.source = ((PyObject *)__pyx_v_source);

  /* "setools/policyrep/terule.pxi":180
 *         r.ruletype = self.ruletype
 *         r.source = source
 *         r.target = target             # <<<<<<<<<<<<<<
 *         r.tclass = self.tclass
 *         r.perms = frozenset(p for p in perms)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_target);
  __Pyx_GIVEREF((PyObject *)__pyx_v_target);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __pyx_v_r->__pyx_base.__pyx_base.target = ((PyObject *)__pyx_v_target);

  /* "setools/policyrep/terule.pxi":181
 *         r.source = source
 *         r.target = target
 *         r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *         r.perms = frozenset(p for p in perms)
 *         r._conditional = self._conditional
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.tclass);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.tclass);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.tclass);
  __pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":182
 *         r.target = target
 *         r.tclass = self.tclass
 *         r.perms = frozenset(p for p in perms)             # <<<<<<<<<<<<<<
 *         r._conditional = self._conditional
 *         r._conditional_block = self._conditional_block
*/
  __pyx_t_2 = __pyx_pf_7setools_9policyrep_6AVRule_15derive_expanded_genexpr(NULL, __pyx_v_perms); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_11 = __Pyx_PyFrozenSet_New(__pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(21, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_11);
  __Pyx_GOTREF(__pyx_v_r->perms);
  __Pyx_DECREF(__pyx_v_r->perms);
  __pyx_v_r->perms = ((PyObject*)__pyx_t_11);
  __pyx_t_11 = 0;

  /* "setools/policyrep/terule.pxi":183
 *         r.tclass = self.tclass
 *         r.perms = frozenset(p for p in perms)
 *         r._conditional = self._conditional             # <<<<<<<<<<<<<<
 *         r._conditional_block = self._conditional_block
 *         r.origin = self
*/
  __pyx_t_11 = ((PyObject *)__pyx_v_self->__pyx_base._conditional);
  __Pyx_INCREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_11);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base._conditional);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base._conditional);
  __pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_11);
  __pyx_t_11 = 0;

  /* "setools/policyrep/terule.pxi":184
 *         r.perms = frozenset(p for p in perms)
 *         r._conditional = self._conditional
 *         r._conditional_block = self._conditional_block             # <<<<<<<<<<<<<<
 *         r.origin = self
 *         return r
*/
  __pyx_t_1 = __pyx_v_self->__pyx_base._conditional_block;
  __pyx_v_r->__pyx_base._conditional_block = __pyx_t_1;

  /* "setools/policyrep/terule.pxi":185
 *         r._conditional = self._conditional
 *         r._conditional_block = self._conditional_block
 *         r.origin = self             # <<<<<<<<<<<<<<
 *         return r
 * 
*/
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __pyx_v_r->__pyx_base.__pyx_base.origin = ((PyObject *)__pyx_v_self);

  /* "setools/policyrep/terule.pxi":186
 *         r._conditional_block = self._conditional_block
 *         r.origin = self
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = ((PyObject *)__pyx_v_r);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":162
 *         raise RuleUseError(f"{self.ruletype} rules do not have a default type.")
 * 
 *     def derive_expanded(self, BaseType source, BaseType target, perms):             # <<<<<<<<<<<<<<
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.AVRule.derive_expanded", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_6AVRule_15derive_expanded_2generator30);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_8generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":188
 *         return r
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRule r
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_7expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_6AVRule_6expand, "Expand the rule into an equivalent set of rules without attributes.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_6AVRule_7expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6AVRule_7expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_6AVRule_6expand};
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_7expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_6expand(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_6expand(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_26_expand(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 188, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_6AVRule_8generator7, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_expand, __pyx_mstate_global->__pyx_n_u_AVRule_expand, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(21, 188, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.AVRule.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_8generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *(*__pyx_t_11)(PyObject *);
  uintptr_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L11_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(21, 188, __pyx_L1_error)
  }

  /* "setools/policyrep/terule.pxi":191
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRule.__new__(AVRule)
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.origin == Py_None);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":192
 *         cdef AVRule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = AVRule.__new__(AVRule)
 *                 r.policy = self.policy
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 192, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 192, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.source;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 192, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_8 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.target;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 192, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_6};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 192, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5);
      __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 192, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 192, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 192, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference);
          ++__pyx_t_9;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 192, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9));
          #else
          __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_9);
          #endif
          ++__pyx_t_9;
        }
        if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 192, __pyx_L1_error)
      } else {
        __pyx_t_2 = __pyx_t_10(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(21, 192, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_2);
      if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
        PyObject* sequence = __pyx_t_2;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(21, 192, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_6);
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_4);
        } else {
          __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 192, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_6);
          __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 192, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_4);
        }
        #else
        __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 192, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 192, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 192, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3);
        index = 0; __pyx_t_6 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_3), 2) < (0)) __PYX_ERR(21, 192, __pyx_L1_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(21, 192, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;

      /* "setools/policyrep/terule.pxi":193
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRule.__new__(AVRule)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
*/
      __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_AVRule(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRule), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 193, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
      __Pyx_XGOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_t_2));
      __Pyx_GIVEREF((PyObject *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":194
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRule.__new__(AVRule)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":195
 *                 r = AVRule.__new__(AVRule)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
*/
      __pyx_t_12 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_12;

      /* "setools/policyrep/terule.pxi":196
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
*/
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":197
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/terule.pxi":198
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/terule.pxi":199
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.perms = self.perms
 *                 r._conditional = self._conditional
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.tclass);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":200
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms             # <<<<<<<<<<<<<<
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
*/
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->perms;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->perms);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->perms);
      __pyx_cur_scope->__pyx_v_r->perms = ((PyObject*)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":201
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms
 *                 r._conditional = self._conditional             # <<<<<<<<<<<<<<
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base._conditional);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":202
 *                 r.perms = self.perms
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
*/
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->__pyx_base._conditional_block;
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional_block = __pyx_t_1;

      /* "setools/policyrep/terule.pxi":203
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/terule.pxi":204
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 204, __pyx_L1_error)

      /* "setools/policyrep/terule.pxi":192
 *         cdef AVRule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = AVRule.__new__(AVRule)
 *                 r.policy = self.policy
*/
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/terule.pxi":191
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRule.__new__(AVRule)
*/
    goto __pyx_L4;
  }

  /* "setools/policyrep/terule.pxi":208
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  /*else*/ {
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L11_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 208, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/terule.pxi":188
 *         return r
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRule r
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":210
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} "
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_10statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6AVRule_10statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6AVRule_10statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_10statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_9statement(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_9statement(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  PyObject *__pyx_v_perms = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[8];
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *__pyx_t_10[3];
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14[4];
  int __pyx_t_15;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/terule.pxi":211
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} "
 * 
*/
  if (__pyx_v_self->__pyx_base.rule_string == Py_None) __pyx_t_1 = 0;
  else
  {
    Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_self->__pyx_base.rule_string);
    if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(21, 211, __pyx_L1_error)
    __pyx_t_1 = (__pyx_temp != 0);
  }

  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":212
 *     def statement(self):
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} "             # <<<<<<<<<<<<<<
 * 
 *             # allow/dontaudit/auditallow/neverallow rules
*/
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 212, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 212, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 212, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 212, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_t_3;
    __pyx_t_7[1] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_7[2] = __pyx_t_4;
    __pyx_t_7[3] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_7[4] = __pyx_t_5;
    __pyx_t_7[5] = __pyx_mstate_global->__pyx_kp_u__13;
    __pyx_t_7[6] = __pyx_t_6;
    __pyx_t_7[7] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 8, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1 * 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 212, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GIVEREF(__pyx_t_8);
    __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
    __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
    __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_8);
    __pyx_t_8 = 0;

    /* "setools/policyrep/terule.pxi":215
 * 
 *             # allow/dontaudit/auditallow/neverallow rules
 *             perms = self.perms             # <<<<<<<<<<<<<<
 *             if len(perms) > 1:
 *                 self.rule_string += f"{{ {' '.join(sorted(perms))} }};"
*/
    __pyx_t_8 = __pyx_v_self->perms;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_v_perms = ((PyObject*)__pyx_t_8);
    __pyx_t_8 = 0;

    /* "setools/policyrep/terule.pxi":216
 *             # allow/dontaudit/auditallow/neverallow rules
 *             perms = self.perms
 *             if len(perms) > 1:             # <<<<<<<<<<<<<<
 *                 self.rule_string += f"{{ {' '.join(sorted(perms))} }};"
 *             else:
*/
    if (unlikely(__pyx_v_perms == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(21, 216, __pyx_L1_error)
    }
    __pyx_t_9 = __Pyx_PySet_GET_SIZE(__pyx_v_perms); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(21, 216, __pyx_L1_error)
    __pyx_t_2 = (__pyx_t_9 > 1);
    if (__pyx_t_2) {

      /* "setools/policyrep/terule.pxi":217
 *             perms = self.perms
 *             if len(perms) > 1:
 *                 self.rule_string += f"{{ {' '.join(sorted(perms))} }};"             # <<<<<<<<<<<<<<
 *             else:
 *                 # convert to list since sets cannot be indexed
*/
      __pyx_t_8 = PySequence_List(__pyx_v_perms); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 217, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely((PyList_Sort(__pyx_t_8) < 0))) __PYX_ERR(21, 217, __pyx_L1_error)
      __pyx_t_6 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 217, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_10[0] = __pyx_mstate_global->__pyx_kp_u__6;
      __pyx_t_10[1] = __pyx_t_6;
      __pyx_t_10[2] = __pyx_mstate_global->__pyx_kp_u__31;
      __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_10, 3, 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 3, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
      if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 217, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlaceSafe(__pyx_v_self->__pyx_base.rule_string, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 217, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
      __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
      __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_6);
      __pyx_t_6 = 0;

      /* "setools/policyrep/terule.pxi":216
 *             # allow/dontaudit/auditallow/neverallow rules
 *             perms = self.perms
 *             if len(perms) > 1:             # <<<<<<<<<<<<<<
 *                 self.rule_string += f"{{ {' '.join(sorted(perms))} }};"
 *             else:
*/
      goto __pyx_L4;
    }

    /* "setools/policyrep/terule.pxi":220
 *             else:
 *                 # convert to list since sets cannot be indexed
 *                 self.rule_string += f"{list(perms)[0]};"             # <<<<<<<<<<<<<<
 * 
 *             try:
*/
    /*else*/ {
      __pyx_t_6 = PySequence_List(__pyx_v_perms); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 220, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_t_6, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 220, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_8, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 220, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_6, __pyx_mstate_global->__pyx_kp_u__2); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 220, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlaceSafe(__pyx_v_self->__pyx_base.rule_string, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 220, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
      __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
      __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_6);
      __pyx_t_6 = 0;
    }
    __pyx_L4:;

    /* "setools/policyrep/terule.pxi":222
 *                 self.rule_string += f"{list(perms)[0]};"
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += f" [ {self.conditional} ]:{self.conditional_block}"
 *             except RuleNotConditional:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_13);
      /*try:*/ {

        /* "setools/policyrep/terule.pxi":223
 * 
 *             try:
 *                 self.rule_string += f" [ {self.conditional} ]:{self.conditional_block}"             # <<<<<<<<<<<<<<
 *             except RuleNotConditional:
 *                 pass
*/
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_conditional); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 223, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_6, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 223, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_conditional_block); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 223, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_6, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 223, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u__33;
        __pyx_t_14[1] = __pyx_t_8;
        __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u__34;
        __pyx_t_14[3] = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_14, 4, 3 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
        if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 223, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlaceSafe(__pyx_v_self->__pyx_base.rule_string, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 223, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GIVEREF(__pyx_t_5);
        __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
        __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
        __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_5);
        __pyx_t_5 = 0;

        /* "setools/policyrep/terule.pxi":222
 *                 self.rule_string += f"{list(perms)[0]};"
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += f" [ {self.conditional} ]:{self.conditional_block}"
 *             except RuleNotConditional:
*/
      }
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L10_try_end;
      __pyx_L5_error:;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "setools/policyrep/terule.pxi":224
 *             try:
 *                 self.rule_string += f" [ {self.conditional} ]:{self.conditional_block}"
 *             except RuleNotConditional:             # <<<<<<<<<<<<<<
 *                 pass
 * 
*/
      __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_6, &__pyx_t_8);
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RuleNotConditional); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 224, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_15 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_5, __pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_ErrRestore(__pyx_t_5, __pyx_t_6, __pyx_t_8);
      __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_8 = 0;
      if (__pyx_t_15) {
        __Pyx_ErrRestore(0,0,0);
        goto __pyx_L6_exception_handled;
      }
      goto __pyx_L7_except_error;

      /* "setools/policyrep/terule.pxi":222
 *                 self.rule_string += f"{list(perms)[0]};"
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += f" [ {self.conditional} ]:{self.conditional_block}"
 *             except RuleNotConditional:
*/
      __pyx_L7_except_error:;
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_XGIVEREF(__pyx_t_12);
      __Pyx_XGIVEREF(__pyx_t_13);
      __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
      goto __pyx_L1_error;
      __pyx_L6_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_XGIVEREF(__pyx_t_12);
      __Pyx_XGIVEREF(__pyx_t_13);
      __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
      __pyx_L10_try_end:;
    }

    /* "setools/policyrep/terule.pxi":211
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} "
 * 
*/
  }

  /* "setools/policyrep/terule.pxi":227
 *                 pass
 * 
 *         return self.rule_string             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __pyx_r = __pyx_v_self->__pyx_base.rule_string;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":210
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} "
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.AVRule.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_perms);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":119
 *     """An access vector type enforcement rule."""
 * 
 *     cdef readonly frozenset perms             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_5perms_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_5perms___get__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_5perms___get__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->perms);
  __pyx_r = __pyx_v_self->perms;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_12__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6AVRule_12__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6AVRule_12__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_12__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_11__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_11__reduce_cython__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.__pyx_base.extended); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(13); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base._conditional);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base._conditional);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self->__pyx_base._conditional)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base._xperm_type);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base._xperm_type);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_self->__pyx_base._xperm_type) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_3) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_v_self->__pyx_base.__pyx_base.origin) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->perms);
  __Pyx_GIVEREF(__pyx_v_self->perms);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 6, __pyx_v_self->perms) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 7, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.rule_string);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 8, __pyx_v_self->__pyx_base.rule_string) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 9, __pyx_v_self->__pyx_base.__pyx_base.ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 10, __pyx_v_self->__pyx_base.__pyx_base.source) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 11, __pyx_v_self->__pyx_base.__pyx_base.target) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 12, ((PyObject *)__pyx_v_self->__pyx_base.tclass)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_AVRule, (type(self), 0x7ba1f46, None), state
*/
  /*else*/ {
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base._conditional) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base._xperm_type != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.origin != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->perms != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.rule_string != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.ruletype != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.source != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.target != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.tclass) != Py_None);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AVRule, (type(self), 0x7ba1f46, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_AVRule, (type(self), 0x7ba1f46, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_AVRule, (type(self), 0x7ba1f46, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AVRule); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_129638214);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_129638214);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_129638214) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AVRule, (type(self), 0x7ba1f46, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_AVRule, (type(self), 0x7ba1f46, None), state
 *     else:
 *         return __pyx_unpickle_AVRule, (type(self), 0x7ba1f46, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AVRule__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AVRule); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_129638214);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_129638214);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_129638214) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.AVRule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AVRule, (type(self), 0x7ba1f46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AVRule__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_14__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6AVRule_14__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6AVRule_14__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_14__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.AVRule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_13__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_13__setstate_cython__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_AVRule, (type(self), 0x7ba1f46, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AVRule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_AVRule__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AVRule, (type(self), 0x7ba1f46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AVRule__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.AVRule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":237
 *     """
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         """
 *         String formatting.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_1__format__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_8XpermSet___format__, "\n        String formatting.\n\n        The standard formatting (no specification) will render the\n        ranges of ioctls, space separated.\n\n        The , option by itself will render the ranges of ioctls,\n        comma separated\n\n        Any other combination of formatting options will fall back\n        to set's formatting behavior.\n        ");
static PyMethodDef __pyx_mdef_7setools_9policyrep_8XpermSet_1__format__ = {"__format__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8XpermSet_1__format__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8XpermSet___format__};
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_1__format__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_spec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__format__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_spec,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(21, 237, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 237, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__format__", 0) < (0)) __PYX_ERR(21, 237, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__format__", 1, 1, 1, i); __PYX_ERR(21, 237, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 237, __pyx_L3_error)
    }
    __pyx_v_spec = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__format__", 1, 1, 1, __pyx_nargs); __PYX_ERR(21, 237, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.XpermSet.__format__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_8XpermSet___format__(((struct __pyx_obj_7setools_9policyrep_XpermSet *)__pyx_v_self), __pyx_v_spec);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":254
 *         perms = sorted(self)
 *         shortlist = []
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):             # <<<<<<<<<<<<<<
 *             group = list(i)
 *             if len(group) > 1:
*/

static PyObject *__pyx_pf_7setools_9policyrep_116__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0) != (0)) __PYX_ERR(21, 254, __pyx_L1_error);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(21, 254, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None) != (0)) __PYX_ERR(21, 254, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_10__format___lambda28(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8XpermSet_10__format___lambda28 = {"lambda28", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8XpermSet_10__format___lambda28, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_10__format___lambda28(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_k = 0;
  PyObject *__pyx_v_c = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda28 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_k,&__pyx_mstate_global->__pyx_n_u_c,0};
    struct __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self);
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(21, 254, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(21, 254, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 254, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lambda28", 0) < (0)) __PYX_ERR(21, 254, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda28", 0, 1, 2, i); __PYX_ERR(21, 254, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(21, 254, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 254, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
    }
    __pyx_v_k = values[0];
    __pyx_v_c = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda28", 0, 1, 2, __pyx_nargs); __PYX_ERR(21, 254, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.XpermSet.__format__.lambda28", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_lambda28(__pyx_self, __pyx_v_k, __pyx_v_c);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_lambda_funcdef_lambda28(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda28", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyIter_Next(__pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Subtract(__pyx_v_k, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.XpermSet.__format__.lambda28", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":237
 *     """
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         """
 *         String formatting.
*/

static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet___format__(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self, PyObject *__pyx_v_spec) {
  PyObject *__pyx_v_perms = NULL;
  PyObject *__pyx_v_shortlist = NULL;
  CYTHON_UNUSED PyObject *__pyx_v__ = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_group = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  PyObject *(*__pyx_t_12)(PyObject *);
  Py_ssize_t __pyx_t_13;
  int __pyx_t_14;
  PyObject *__pyx_t_15[3];
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__format__", 0);

  /* "setools/policyrep/terule.pxi":252
 * 
 *         # generate short permission notation
 *         perms = sorted(self)             # <<<<<<<<<<<<<<
 *         shortlist = []
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):
*/
  __pyx_t_1 = PySequence_List(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely((PyList_Sort(__pyx_t_1) < 0))) __PYX_ERR(21, 252, __pyx_L1_error)
  __pyx_v_perms = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":253
 *         # generate short permission notation
 *         perms = sorted(self)
 *         shortlist = []             # <<<<<<<<<<<<<<
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):
 *             group = list(i)
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_shortlist = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":254
 *         perms = sorted(self)
 *         shortlist = []
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):             # <<<<<<<<<<<<<<
 *             group = list(i)
 *             if len(group) > 1:
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_groupby); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8XpermSet_10__format___lambda28, 0, __pyx_mstate_global->__pyx_n_u_format___locals_lambda, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_defaults)) __PYX_ERR(21, 254, __pyx_L1_error)
  __pyx_t_6 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_9 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
    assert(__pyx_t_6);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
    __pyx_t_9 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
    __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
  }
  __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_t_3)->arg0 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_7setools_9policyrep_116__defaults__);
  __pyx_t_9 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_9 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, __pyx_v_perms};
    __pyx_t_5 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_key, __pyx_t_3, __pyx_t_5, __pyx_callargs+2, 0) < (0)) __PYX_ERR(21, 254, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4);
    __pyx_t_10 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(21, 254, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 254, __pyx_L1_error)
          #endif
          if (__pyx_t_10 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_10, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_10;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 254, __pyx_L1_error)
          #endif
          if (__pyx_t_10 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_10);
        #endif
        ++__pyx_t_10;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 254, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_11(__pyx_t_4);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(21, 254, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(21, 254, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
        __Pyx_INCREF(__pyx_t_5);
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
        __Pyx_INCREF(__pyx_t_3);
      } else {
        __pyx_t_5 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
        if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 254, __pyx_L1_error)
        __Pyx_XGOTREF(__pyx_t_5);
        __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
        if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 254, __pyx_L1_error)
        __Pyx_XGOTREF(__pyx_t_3);
      }
      #else
      __pyx_t_5 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 254, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 254, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 254, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_12 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2);
      index = 0; __pyx_t_5 = __pyx_t_12(__pyx_t_2); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      index = 1; __pyx_t_3 = __pyx_t_12(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_2), 2) < (0)) __PYX_ERR(21, 254, __pyx_L1_error)
      __pyx_t_12 = NULL;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L6_unpacking_done;
      __pyx_L5_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_12 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(21, 254, __pyx_L1_error)
      __pyx_L6_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/terule.pxi":255
 *         shortlist = []
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):
 *             group = list(i)             # <<<<<<<<<<<<<<
 *             if len(group) > 1:
 *                 shortlist.append(f"{group[0]:#06x}-{group[-1]:#06x}")
*/
    __pyx_t_1 = PySequence_List(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_group, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/terule.pxi":256
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):
 *             group = list(i)
 *             if len(group) > 1:             # <<<<<<<<<<<<<<
 *                 shortlist.append(f"{group[0]:#06x}-{group[-1]:#06x}")
 *             else:
*/
    __pyx_t_13 = __Pyx_PyList_GET_SIZE(__pyx_v_group); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(21, 256, __pyx_L1_error)
    __pyx_t_14 = (__pyx_t_13 > 1);
    if (__pyx_t_14) {

      /* "setools/policyrep/terule.pxi":257
 *             group = list(i)
 *             if len(group) > 1:
 *                 shortlist.append(f"{group[0]:#06x}-{group[-1]:#06x}")             # <<<<<<<<<<<<<<
 *             else:
 *                 shortlist.append(f"{group[0]:#06x}")
*/
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_group, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_Format(__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_06x); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_group, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_Format(__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_06x); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_15[0] = __pyx_t_3;
      __pyx_t_15[1] = __pyx_mstate_global->__pyx_kp_u__20;
      __pyx_t_15[2] = __pyx_t_5;
      __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_15, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
      if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_shortlist, __pyx_t_1); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(21, 257, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/terule.pxi":256
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):
 *             group = list(i)
 *             if len(group) > 1:             # <<<<<<<<<<<<<<
 *                 shortlist.append(f"{group[0]:#06x}-{group[-1]:#06x}")
 *             else:
*/
      goto __pyx_L7;
    }

    /* "setools/policyrep/terule.pxi":259
 *                 shortlist.append(f"{group[0]:#06x}-{group[-1]:#06x}")
 *             else:
 *                 shortlist.append(f"{group[0]:#06x}")             # <<<<<<<<<<<<<<
 * 
 *         if not spec:
*/
    /*else*/ {
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_group, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 259, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_Format(__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_06x); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 259, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_shortlist, __pyx_t_5); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(21, 259, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_L7:;

    /* "setools/policyrep/terule.pxi":254
 *         perms = sorted(self)
 *         shortlist = []
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):             # <<<<<<<<<<<<<<
 *             group = list(i)
 *             if len(group) > 1:
*/
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/terule.pxi":261
 *                 shortlist.append(f"{group[0]:#06x}")
 * 
 *         if not spec:             # <<<<<<<<<<<<<<
 *             return " ".join(shortlist)
 *         elif spec == ",":
*/
  __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_v_spec); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(21, 261, __pyx_L1_error)
  __pyx_t_17 = (!__pyx_t_14);
  if (__pyx_t_17) {

    /* "setools/policyrep/terule.pxi":262
 * 
 *         if not spec:
 *             return " ".join(shortlist)             # <<<<<<<<<<<<<<
 *         elif spec == ",":
 *             return ", ".join(shortlist)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_v_shortlist); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":261
 *                 shortlist.append(f"{group[0]:#06x}")
 * 
 *         if not spec:             # <<<<<<<<<<<<<<
 *             return " ".join(shortlist)
 *         elif spec == ",":
*/
  }

  /* "setools/policyrep/terule.pxi":263
 *         if not spec:
 *             return " ".join(shortlist)
 *         elif spec == ",":             # <<<<<<<<<<<<<<
 *             return ", ".join(shortlist)
 *         else:
*/
  __pyx_t_17 = (__Pyx_PyUnicode_Equals(__pyx_v_spec, __pyx_mstate_global->__pyx_kp_u__18, Py_EQ)); if (unlikely((__pyx_t_17 < 0))) __PYX_ERR(21, 263, __pyx_L1_error)
  if (__pyx_t_17) {

    /* "setools/policyrep/terule.pxi":264
 *             return " ".join(shortlist)
 *         elif spec == ",":
 *             return ", ".join(shortlist)             # <<<<<<<<<<<<<<
 *         else:
 *             return super().__format__(spec)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__19, __pyx_v_shortlist); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":263
 *         if not spec:
 *             return " ".join(shortlist)
 *         elif spec == ",":             # <<<<<<<<<<<<<<
 *             return ", ".join(shortlist)
 *         else:
*/
  }

  /* "setools/policyrep/terule.pxi":266
 *             return ", ".join(shortlist)
 *         else:
 *             return super().__format__(spec)             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = NULL;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet), ((PyObject *)__pyx_v_self)};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 266, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_5 = __pyx_t_1;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_9 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_spec};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 266, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/terule.pxi":237
 *     """
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         """
 *         String formatting.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.XpermSet.__format__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_perms);
  __Pyx_XDECREF(__pyx_v_shortlist);
  __Pyx_XDECREF(__pyx_v__);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_group);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":268
 *             return super().__format__(spec)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return f"{self}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_3__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_3__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8XpermSet_2__str__(((struct __pyx_obj_7setools_9policyrep_XpermSet *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_2__str__(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/terule.pxi":269
 * 
 *     def __str__(self):
 *         return f"{self}"             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":268
 *             return super().__format__(spec)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return f"{self}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.XpermSet.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":271
 *         return f"{self}"
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"{{ {self:,} }}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_5__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8XpermSet_4__repr__(((struct __pyx_obj_7setools_9policyrep_XpermSet *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_4__repr__(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2[3];
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "setools/policyrep/terule.pxi":272
 * 
 *     def __repr__(self):
 *         return f"{{ {self:,} }}"             # <<<<<<<<<<<<<<
 * 
 *     def ranges(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Format(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_kp_u__18); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2[0] = __pyx_mstate_global->__pyx_kp_u__6;
  __pyx_t_2[1] = __pyx_t_1;
  __pyx_t_2[2] = __pyx_mstate_global->__pyx_kp_u__7;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, 2 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":271
 *         return f"{self}"
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"{{ {self:,} }}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.XpermSet.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":274
 *         return f"{{ {self:,} }}"
 * 
 *     def ranges(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the number of ranges in the set.  Main use
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_7ranges(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_8XpermSet_6ranges, "\n        Return the number of ranges in the set.  Main use\n        is to determine if brackets need to be used in\n        string output.\n        ");
static PyMethodDef __pyx_mdef_7setools_9policyrep_8XpermSet_7ranges = {"ranges", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8XpermSet_7ranges, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8XpermSet_6ranges};
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_7ranges(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ranges (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("ranges", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("ranges", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8XpermSet_6ranges(((struct __pyx_obj_7setools_9policyrep_XpermSet *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_8XpermSet_6ranges_2generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":280
 *         string output.
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(             # <<<<<<<<<<<<<<
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))
 * 
*/

static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_6ranges_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_27_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 280, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_8XpermSet_6ranges_2generator31, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_ranges_locals_genexpr, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(21, 280, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.XpermSet.ranges.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_8XpermSet_6ranges_2generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L8_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(21, 280, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(21, 280, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 280, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 280, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 280, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 280, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(21, 280, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
      PyObject* sequence = __pyx_t_4;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(21, 280, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
        __Pyx_INCREF(__pyx_t_5);
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);
        __Pyx_INCREF(__pyx_t_6);
      } else {
        __pyx_t_5 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
        if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 280, __pyx_L1_error)
        __Pyx_XGOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
        if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 280, __pyx_L1_error)
        __Pyx_XGOTREF(__pyx_t_6);
      }
      #else
      __pyx_t_5 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 280, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 280, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      #endif
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 280, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7);
      index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < (0)) __PYX_ERR(21, 280, __pyx_L1_error)
      __pyx_t_8 = NULL;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L7_unpacking_done;
      __pyx_L6_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(21, 280, __pyx_L1_error)
      __pyx_L7_unpacking_done:;
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__a);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__a, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__b);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__b, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1);
    __pyx_r = __pyx_mstate_global->__pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L8_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 280, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":281
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))             # <<<<<<<<<<<<<<
 * 
 * 
*/

static PyObject *__pyx_pf_7setools_9policyrep_118__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0) != (0)) __PYX_ERR(21, 281, __pyx_L1_error);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(21, 281, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None) != (0)) __PYX_ERR(21, 281, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_6ranges_3lambda30(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8XpermSet_6ranges_3lambda30 = {"lambda30", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8XpermSet_6ranges_3lambda30, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_6ranges_3lambda30(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_k = 0;
  PyObject *__pyx_v_c = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda30 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_k,&__pyx_mstate_global->__pyx_n_u_c,0};
    struct __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self);
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(21, 281, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(21, 281, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 281, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lambda30", 0) < (0)) __PYX_ERR(21, 281, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda30", 0, 1, 2, i); __PYX_ERR(21, 281, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(21, 281, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 281, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
    }
    __pyx_v_k = values[0];
    __pyx_v_c = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda30", 0, 1, 2, __pyx_nargs); __PYX_ERR(21, 281, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.XpermSet.ranges.lambda30", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_lambda30(__pyx_self, __pyx_v_k, __pyx_v_c);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_lambda_funcdef_lambda30(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda30", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyIter_Next(__pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Subtract(__pyx_v_k, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.XpermSet.ranges.lambda30", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":274
 *         return f"{{ {self:,} }}"
 * 
 *     def ranges(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the number of ranges in the set.  Main use
*/

static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_6ranges(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self) {
  PyObject *__pyx_gb_7setools_9policyrep_8XpermSet_6ranges_2generator31 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  size_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ranges", 0);

  /* "setools/policyrep/terule.pxi":280
 *         string output.
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(             # <<<<<<<<<<<<<<
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_groupby); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/terule.pxi":281
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_5 = PySequence_List(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely((PyList_Sort(__pyx_t_5) < 0))) __PYX_ERR(21, 281, __pyx_L1_error)
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8XpermSet_6ranges_3lambda30, 0, __pyx_mstate_global->__pyx_n_u_ranges_locals_lambda, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_7, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_defaults)) __PYX_ERR(21, 281, __pyx_L1_error)
  __pyx_t_9 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_count); if (unlikely(!__pyx_t_11)) __PYX_ERR(21, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_12 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_11);
    assert(__pyx_t_9);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
    __Pyx_INCREF(__pyx_t_9);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
    __pyx_t_12 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL};
    __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_12, (1-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
  }
  __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_t_7)->arg0 = __pyx_t_8;
  __Pyx_GIVEREF(__pyx_t_8);
  __pyx_t_8 = 0;
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_7, __pyx_pf_7setools_9policyrep_118__defaults__);
  __pyx_t_12 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
    __pyx_t_12 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_key, __pyx_t_7, __pyx_t_8, __pyx_callargs+2, 0) < (0)) __PYX_ERR(21, 280, __pyx_L1_error)
    __pyx_t_3 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }

  /* "setools/policyrep/terule.pxi":280
 *         string output.
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(             # <<<<<<<<<<<<<<
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))
 * 
*/
  __pyx_t_6 = __pyx_pf_7setools_9policyrep_8XpermSet_6ranges_genexpr(NULL, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_12 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_sum, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":274
 *         return f"{{ {self:,} }}"
 * 
 *     def ranges(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the number of ranges in the set.  Main use
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.XpermSet.ranges", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_8XpermSet_6ranges_2generator31);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8XpermSet_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8XpermSet_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8XpermSet_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_XpermSet *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
  __pyx_v_state = __pyx_mstate_global->__pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_XpermSet, (type(self), 0xe3b0c44, None), state
*/
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_XpermSet, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_XpermSet, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_XpermSet, (type(self), 0xe3b0c44, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_XpermSet); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_XpermSet, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_XpermSet, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_XpermSet, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_XpermSet__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_XpermSet); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.XpermSet.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_XpermSet, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_XpermSet__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8XpermSet_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8XpermSet_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8XpermSet_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.XpermSet.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_8XpermSet_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_XpermSet *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8XpermSet_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_XpermSet, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_XpermSet__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_XpermSet__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_XpermSet, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_XpermSet__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.XpermSet.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":286
 * cdef class IoctlSet(XpermSet):
 * 
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         log = logging.getLogger(__name__)
 *         log.warning("IoctlSet is deprecated, use XpermSet instead.")
*/

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_8IoctlSet_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_7setools_9policyrep_8IoctlSet_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (__pyx_kwds_len > 0) {
    if (unlikely(__Pyx_CheckKeywordStrings("__init__", __pyx_kwds) == -1)) return -1;
    __pyx_v_kwargs = __Pyx_KwargsAsDict_VARARGS(__pyx_kwds, __pyx_kwvalues);
    if (unlikely(!__pyx_v_kwargs)) return -1;
    __Pyx_GOTREF(__pyx_v_kwargs);
  } else {
    __pyx_v_kwargs = PyDict_New();
    if (unlikely(!__pyx_v_kwargs)) return -1;
    __Pyx_GOTREF(__pyx_v_kwargs);
  }
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_7setools_9policyrep_8IoctlSet___init__(((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_DECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7setools_9policyrep_8IoctlSet___init__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {
  PyObject *__pyx_v_log = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "setools/policyrep/terule.pxi":287
 * 
 *     def __init__(self, *args, **kwargs):
 *         log = logging.getLogger(__name__)             # <<<<<<<<<<<<<<
 *         log.warning("IoctlSet is deprecated, use XpermSet instead.")
 *         super().__init__(*args, **kwargs)
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_logging); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_getLogger); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_log = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":288
 *     def __init__(self, *args, **kwargs):
 *         log = logging.getLogger(__name__)
 *         log.warning("IoctlSet is deprecated, use XpermSet instead.")             # <<<<<<<<<<<<<<
 *         super().__init__(*args, **kwargs)
 * 
*/
  __pyx_t_4 = __pyx_v_log;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_IoctlSet_is_deprecated_use_Xperm};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_warning, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":289
 *         log = logging.getLogger(__name__)
 *         log.warning("IoctlSet is deprecated, use XpermSet instead.")
 *         super().__init__(*args, **kwargs)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IoctlSet), ((PyObject *)__pyx_v_self)};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_v_args, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":286
 * cdef class IoctlSet(XpermSet):
 * 
 *     def __init__(self, *args, **kwargs):             # <<<<<<<<<<<<<<
 *         log = logging.getLogger(__name__)
 *         log.warning("IoctlSet is deprecated, use XpermSet instead.")
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_log);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8IoctlSet_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8IoctlSet_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8IoctlSet_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
  __pyx_v_state = __pyx_mstate_global->__pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xe3b0c44, None), state
*/
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xe3b0c44, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_IoctlSet); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_IoctlSet__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_IoctlSet); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_IoctlSet__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8IoctlSet_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8IoctlSet_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_8IoctlSet_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_IoctlSet__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_IoctlSet__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_IoctlSet__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":299
 *         readonly XpermSet perms
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline AVRuleXperm factory(SELinuxPolicy policy, sepol.avtab_key_t *key,
 *                                     sepol.avtab_datum_t *datum, conditional, conditional_block):
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_f_7setools_9policyrep_11AVRuleXperm_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block) {
  PyObject *__pyx_v_xperm_type = 0;
  avtab_extended_perms_t *__pyx_v_xperms;
  PyObject *__pyx_v_perms = 0;
  size_t __pyx_v_curr;
  size_t __pyx_v_len;
  size_t __pyx_v_base_value;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_r = 0;
  PyObject *__pyx_v_rule_string = NULL;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  avtab_extended_perms_t *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  size_t __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  type_datum_t *__pyx_t_13;
  class_datum_t *__pyx_t_14;
  int __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17[10];
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21[4];
  int __pyx_t_22;
  PyObject *__pyx_t_23[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":305
 *         cdef:
 *             str xperm_type
 *             sepol.avtab_extended_perms_t *xperms = datum.xperms             # <<<<<<<<<<<<<<
 *             set perms = set()
 *             size_t curr = 0
*/
  __pyx_t_1 = __pyx_v_datum->xperms;
  __pyx_v_xperms = __pyx_t_1;

  /* "setools/policyrep/terule.pxi":306
 *             str xperm_type
 *             sepol.avtab_extended_perms_t *xperms = datum.xperms
 *             set perms = set()             # <<<<<<<<<<<<<<
 *             size_t curr = 0
 *             size_t len = sizeof(xperms.perms) * sepol.EXTENDED_PERMS_LEN
*/
  __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_perms = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":307
 *             sepol.avtab_extended_perms_t *xperms = datum.xperms
 *             set perms = set()
 *             size_t curr = 0             # <<<<<<<<<<<<<<
 *             size_t len = sizeof(xperms.perms) * sepol.EXTENDED_PERMS_LEN
 *             size_t base_value = 0
*/
  __pyx_v_curr = 0;

  /* "setools/policyrep/terule.pxi":308
 *             set perms = set()
 *             size_t curr = 0
 *             size_t len = sizeof(xperms.perms) * sepol.EXTENDED_PERMS_LEN             # <<<<<<<<<<<<<<
 *             size_t base_value = 0
 * 
*/
  __pyx_v_len = ((sizeof(__pyx_v_xperms->perms)) * EXTENDED_PERMS_LEN);

  /* "setools/policyrep/terule.pxi":309
 *             size_t curr = 0
 *             size_t len = sizeof(xperms.perms) * sepol.EXTENDED_PERMS_LEN
 *             size_t base_value = 0             # <<<<<<<<<<<<<<
 * 
 *         #
*/
  __pyx_v_base_value = 0;

  /* "setools/policyrep/terule.pxi":314
 *         # Build permission set
 *         #
 *         for curr in range(len):             # <<<<<<<<<<<<<<
 *             if sepol.xperm_test(curr, xperms.perms):
 *                 if (xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \
*/
  __pyx_t_3 = __pyx_v_len;
  __pyx_t_4 = __pyx_t_3;
  for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
    __pyx_v_curr = __pyx_t_5;

    /* "setools/policyrep/terule.pxi":315
 *         #
 *         for curr in range(len):
 *             if sepol.xperm_test(curr, xperms.perms):             # <<<<<<<<<<<<<<
 *                 if (xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \
 *                     or xperms.specified == sepol.AVTAB_XPERMS_NLMSG):
*/
    __pyx_t_6 = xperm_test(__pyx_v_curr, __pyx_v_xperms->perms);
    if (__pyx_t_6) {

      /* "setools/policyrep/terule.pxi":316
 *         for curr in range(len):
 *             if sepol.xperm_test(curr, xperms.perms):
 *                 if (xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \             # <<<<<<<<<<<<<<
 *                     or xperms.specified == sepol.AVTAB_XPERMS_NLMSG):
 *                     perms.add(xperms.driver << 8 | curr)
*/
      switch (__pyx_v_xperms->specified) {
        case AVTAB_XPERMS_IOCTLFUNCTION:
        case AVTAB_XPERMS_NLMSG:

        /* "setools/policyrep/terule.pxi":318
 *                 if (xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \
 *                     or xperms.specified == sepol.AVTAB_XPERMS_NLMSG):
 *                     perms.add(xperms.driver << 8 | curr)             # <<<<<<<<<<<<<<
 *                 elif xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *                     base_value = curr << 8
*/
        __pyx_t_2 = __Pyx_PyLong_FromSize_t(((__pyx_v_xperms->driver << 8) | __pyx_v_curr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 318, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_7 = PySet_Add(__pyx_v_perms, __pyx_t_2); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(21, 318, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "setools/policyrep/terule.pxi":316
 *         for curr in range(len):
 *             if sepol.xperm_test(curr, xperms.perms):
 *                 if (xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \             # <<<<<<<<<<<<<<
 *                     or xperms.specified == sepol.AVTAB_XPERMS_NLMSG):
 *                     perms.add(xperms.driver << 8 | curr)
*/
        break;
        case AVTAB_XPERMS_IOCTLDRIVER:

        /* "setools/policyrep/terule.pxi":320
 *                     perms.add(xperms.driver << 8 | curr)
 *                 elif xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *                     base_value = curr << 8             # <<<<<<<<<<<<<<
 *                     perms.update(range(base_value, base_value + 0x100))
 *                 else:
*/
        __pyx_v_base_value = (__pyx_v_curr << 8);

        /* "setools/policyrep/terule.pxi":321
 *                 elif xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *                     base_value = curr << 8
 *                     perms.update(range(base_value, base_value + 0x100))             # <<<<<<<<<<<<<<
 *                 else:
 *                     raise LowLevelPolicyError(f"Unknown extended permission: {xperms.specified}")
*/
        __pyx_t_8 = NULL;
        __pyx_t_9 = __Pyx_PyLong_FromSize_t(__pyx_v_base_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 321, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = __Pyx_PyLong_FromSize_t((__pyx_v_base_value + 0x100)); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 321, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_11 = 1;
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_9, __pyx_t_10};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_11, (3-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 321, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_t_10 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PySet_Type__update, __pyx_v_perms, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 321, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

        /* "setools/policyrep/terule.pxi":319
 *                     or xperms.specified == sepol.AVTAB_XPERMS_NLMSG):
 *                     perms.add(xperms.driver << 8 | curr)
 *                 elif xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:             # <<<<<<<<<<<<<<
 *                     base_value = curr << 8
 *                     perms.update(range(base_value, base_value + 0x100))
*/
        break;
        default:

        /* "setools/policyrep/terule.pxi":323
 *                     perms.update(range(base_value, base_value + 0x100))
 *                 else:
 *                     raise LowLevelPolicyError(f"Unknown extended permission: {xperms.specified}")             # <<<<<<<<<<<<<<
 * 
 *         #
*/
        __pyx_t_2 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_LowLevelPolicyError); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 323, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_8 = __Pyx_PyUnicode_From_uint8_t(__pyx_v_xperms->specified, 0, ' ', 'd'); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 323, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_12 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Unknown_extended_permission, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(21, 323, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_11 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9);
          assert(__pyx_t_2);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
          __pyx_t_11 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_12};
          __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 323, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
        }
        __Pyx_Raise(__pyx_t_10, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __PYX_ERR(21, 323, __pyx_L1_error)
        break;
      }

      /* "setools/policyrep/terule.pxi":315
 *         #
 *         for curr in range(len):
 *             if sepol.xperm_test(curr, xperms.perms):             # <<<<<<<<<<<<<<
 *                 if (xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \
 *                     or xperms.specified == sepol.AVTAB_XPERMS_NLMSG):
*/
    }
  }

  /* "setools/policyrep/terule.pxi":328
 *         # Determine xperm type
 *         #
 *         if datum.xperms == NULL:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError("Extended permission information is NULL")
 * 
*/
  __pyx_t_6 = (__pyx_v_datum->xperms == NULL);
  if (unlikely(__pyx_t_6)) {

    /* "setools/policyrep/terule.pxi":329
 *         #
 *         if datum.xperms == NULL:
 *             raise LowLevelPolicyError("Extended permission information is NULL")             # <<<<<<<<<<<<<<
 * 
 *         if datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \
*/
    __pyx_t_9 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_LowLevelPolicyError); if (unlikely(!__pyx_t_12)) __PYX_ERR(21, 329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_3 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_12))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_12);
      assert(__pyx_t_9);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
      __pyx_t_3 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_Extended_permission_information};
      __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 329, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
    }
    __Pyx_Raise(__pyx_t_10, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __PYX_ERR(21, 329, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":328
 *         # Determine xperm type
 *         #
 *         if datum.xperms == NULL:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError("Extended permission information is NULL")
 * 
*/
  }

  /* "setools/policyrep/terule.pxi":331
 *             raise LowLevelPolicyError("Extended permission information is NULL")
 * 
 *         if datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \             # <<<<<<<<<<<<<<
 *             or datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *             xperm_type = intern("ioctl")
*/
  switch (__pyx_v_datum->xperms->specified) {
    case AVTAB_XPERMS_IOCTLFUNCTION:
    case AVTAB_XPERMS_IOCTLDRIVER:

    /* "setools/policyrep/terule.pxi":333
 *         if datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \
 *             or datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *             xperm_type = intern("ioctl")             # <<<<<<<<<<<<<<
 *         elif datum.xperms.specified == sepol.AVTAB_XPERMS_NLMSG:
 *             xperm_type = intern("nlmsg")
*/
    __pyx_t_10 = __Pyx_Intern(__pyx_mstate_global->__pyx_n_u_ioctl); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (!(likely(PyUnicode_CheckExact(__pyx_t_10))||((__pyx_t_10) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_10))) __PYX_ERR(21, 333, __pyx_L1_error)
    __pyx_v_xperm_type = ((PyObject*)__pyx_t_10);
    __pyx_t_10 = 0;

    /* "setools/policyrep/terule.pxi":331
 *             raise LowLevelPolicyError("Extended permission information is NULL")
 * 
 *         if datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \             # <<<<<<<<<<<<<<
 *             or datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *             xperm_type = intern("ioctl")
*/
    break;
    case AVTAB_XPERMS_NLMSG:

    /* "setools/policyrep/terule.pxi":335
 *             xperm_type = intern("ioctl")
 *         elif datum.xperms.specified == sepol.AVTAB_XPERMS_NLMSG:
 *             xperm_type = intern("nlmsg")             # <<<<<<<<<<<<<<
 *         else:
 *             raise LowLevelPolicyError(f"Unknown extended permission: {datum.xperms.specified}")
*/
    __pyx_t_10 = __Pyx_Intern(__pyx_mstate_global->__pyx_n_u_nlmsg); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (!(likely(PyUnicode_CheckExact(__pyx_t_10))||((__pyx_t_10) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_10))) __PYX_ERR(21, 335, __pyx_L1_error)
    __pyx_v_xperm_type = ((PyObject*)__pyx_t_10);
    __pyx_t_10 = 0;

    /* "setools/policyrep/terule.pxi":334
 *             or datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *             xperm_type = intern("ioctl")
 *         elif datum.xperms.specified == sepol.AVTAB_XPERMS_NLMSG:             # <<<<<<<<<<<<<<
 *             xperm_type = intern("nlmsg")
 *         else:
*/
    break;
    default:

    /* "setools/policyrep/terule.pxi":337
 *             xperm_type = intern("nlmsg")
 *         else:
 *             raise LowLevelPolicyError(f"Unknown extended permission: {datum.xperms.specified}")             # <<<<<<<<<<<<<<
 * 
 *         #
*/
    __pyx_t_12 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_LowLevelPolicyError); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = __Pyx_PyUnicode_From_uint8_t(__pyx_v_datum->xperms->specified, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Unknown_extended_permission, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_9);
      assert(__pyx_t_12);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
      __pyx_t_3 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_8};
      __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 337, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
    }
    __Pyx_Raise(__pyx_t_10, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __PYX_ERR(21, 337, __pyx_L1_error)
    break;
  }

  /* "setools/policyrep/terule.pxi":342
 *         # Construct rule object
 *         #
 *         cdef AVRuleXperm r = AVRuleXperm.__new__(AVRuleXperm)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>key
*/
  __pyx_t_10 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_AVRuleXperm(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRuleXperm), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 342, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_10);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_t_10);
  __pyx_t_10 = 0;

  /* "setools/policyrep/terule.pxi":343
 *         #
 *         cdef AVRuleXperm r = AVRuleXperm.__new__(AVRuleXperm)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":344
 *         cdef AVRuleXperm r = AVRuleXperm.__new__(AVRuleXperm)
 *         r.policy = policy
 *         r.key = <uintptr_t>key             # <<<<<<<<<<<<<<
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
*/
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_key);

  /* "setools/policyrep/terule.pxi":345
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)             # <<<<<<<<<<<<<<
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
*/
  __pyx_t_9 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_12 = __Pyx_PyLong_From_int((__pyx_v_key->specified & (~AVTAB_ENABLED))); if (unlikely(!__pyx_t_12)) __PYX_ERR(21, 345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_3 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
    assert(__pyx_t_9);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
    __Pyx_INCREF(__pyx_t_9);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
    __pyx_t_3 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_12};
    __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
  }
  __Pyx_GIVEREF(__pyx_t_10);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_10;
  __pyx_t_10 = 0;

  /* "setools/policyrep/terule.pxi":346
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
*/
  __pyx_t_13 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->source_type - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 346, __pyx_L1_error)
  __pyx_t_10 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_t_13)); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_10);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __pyx_v_r->__pyx_base.__pyx_base.source = __pyx_t_10;
  __pyx_t_10 = 0;

  /* "setools/policyrep/terule.pxi":347
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = XpermSet(perms)
*/
  __pyx_t_13 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->target_type - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 347, __pyx_L1_error)
  __pyx_t_10 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_t_13)); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_10);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __pyx_v_r->__pyx_base.__pyx_base.target = __pyx_t_10;
  __pyx_t_10 = 0;

  /* "setools/policyrep/terule.pxi":348
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))             # <<<<<<<<<<<<<<
 *         r.perms = XpermSet(perms)
 *         r._xperm_type = xperm_type
*/
  __pyx_t_14 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_key->target_class - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 348, __pyx_L1_error)
  __pyx_t_10 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_t_14)); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_10);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.tclass);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.tclass);
  __pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_10);
  __pyx_t_10 = 0;

  /* "setools/policyrep/terule.pxi":349
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = XpermSet(perms)             # <<<<<<<<<<<<<<
 *         r._xperm_type = xperm_type
 *         r._conditional = conditional
*/
  __pyx_t_8 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_perms};
    __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 349, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_10);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_10);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->perms);
  __Pyx_DECREF((PyObject *)__pyx_v_r->perms);
  __pyx_v_r->perms = ((struct __pyx_obj_7setools_9policyrep_XpermSet *)__pyx_t_10);
  __pyx_t_10 = 0;

  /* "setools/policyrep/terule.pxi":350
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = XpermSet(perms)
 *         r._xperm_type = xperm_type             # <<<<<<<<<<<<<<
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
*/
  __Pyx_INCREF(__pyx_v_xperm_type);
  __Pyx_GIVEREF(__pyx_v_xperm_type);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base._xperm_type);
  __Pyx_DECREF(__pyx_v_r->__pyx_base._xperm_type);
  __pyx_v_r->__pyx_base._xperm_type = __pyx_v_xperm_type;

  /* "setools/policyrep/terule.pxi":351
 *         r.perms = XpermSet(perms)
 *         r._xperm_type = xperm_type
 *         r._conditional = conditional             # <<<<<<<<<<<<<<
 *         r._conditional_block = conditional_block
 *         r.origin = None
*/
  __pyx_t_10 = __pyx_v_conditional;
  __Pyx_INCREF(__pyx_t_10);
  if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(21, 351, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_10);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base._conditional);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base._conditional);
  __pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_10);
  __pyx_t_10 = 0;

  /* "setools/policyrep/terule.pxi":352
 *         r._xperm_type = xperm_type
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block             # <<<<<<<<<<<<<<
 *         r.origin = None
 * 
*/
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_conditional_block); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(21, 352, __pyx_L1_error)
  __pyx_v_r->__pyx_base._conditional_block = __pyx_t_6;

  /* "setools/policyrep/terule.pxi":353
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
 *         r.origin = None             # <<<<<<<<<<<<<<
 * 
 *         if not perms:
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __pyx_v_r->__pyx_base.__pyx_base.origin = Py_None;

  /* "setools/policyrep/terule.pxi":355
 *         r.origin = None
 * 
 *         if not perms:             # <<<<<<<<<<<<<<
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {r.xperm_type} {{ }};"
 *             try:
*/
  {
    Py_ssize_t __pyx_temp = __Pyx_PySet_GET_SIZE(__pyx_v_perms);
    if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(21, 355, __pyx_L1_error)
    __pyx_t_6 = (__pyx_temp != 0);
  }

  __pyx_t_15 = (!__pyx_t_6);
  if (__pyx_t_15) {

    /* "setools/policyrep/terule.pxi":356
 * 
 *         if not perms:
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {r.xperm_type} {{ }};"             # <<<<<<<<<<<<<<
 *             try:
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"
*/
    __pyx_t_10 = __Pyx_PyObject_FormatSimple(__pyx_v_r->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 356, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_r->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 356, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_r->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(21, 356, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_9 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_r->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 356, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_r), __pyx_mstate_global->__pyx_n_u_xperm_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 356, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_16 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(21, 356, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_17[0] = __pyx_t_10;
    __pyx_t_17[1] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_17[2] = __pyx_t_8;
    __pyx_t_17[3] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_17[4] = __pyx_t_12;
    __pyx_t_17[5] = __pyx_mstate_global->__pyx_kp_u__13;
    __pyx_t_17[6] = __pyx_t_9;
    __pyx_t_17[7] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_17[8] = __pyx_t_16;
    __pyx_t_17[9] = __pyx_mstate_global->__pyx_kp_u__32;
    __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_17, 10, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 1 * 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16) + 5, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_16));
    if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 356, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_v_rule_string = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/terule.pxi":357
 *         if not perms:
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {r.xperm_type} {{ }};"
 *             try:             # <<<<<<<<<<<<<<
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"
 *             except RuleNotConditional:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
      __Pyx_XGOTREF(__pyx_t_18);
      __Pyx_XGOTREF(__pyx_t_19);
      __Pyx_XGOTREF(__pyx_t_20);
      /*try:*/ {

        /* "setools/policyrep/terule.pxi":358
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {r.xperm_type} {{ }};"
 *             try:
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"             # <<<<<<<<<<<<<<
 *             except RuleNotConditional:
 *                 pass
*/
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_r), __pyx_mstate_global->__pyx_n_u_conditional); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 358, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_16 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(21, 358, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_r), __pyx_mstate_global->__pyx_n_u_conditional_block); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 358, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 358, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_21[0] = __pyx_mstate_global->__pyx_kp_u__33;
        __pyx_t_21[1] = __pyx_t_16;
        __pyx_t_21[2] = __pyx_mstate_global->__pyx_kp_u__34;
        __pyx_t_21[3] = __pyx_t_9;
        __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_21, 4, 3 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_16) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9));
        if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 358, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_rule_string, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 358, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF_SET(__pyx_v_rule_string, ((PyObject*)__pyx_t_9));
        __pyx_t_9 = 0;

        /* "setools/policyrep/terule.pxi":357
 *         if not perms:
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {r.xperm_type} {{ }};"
 *             try:             # <<<<<<<<<<<<<<
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"
 *             except RuleNotConditional:
*/
      }
      __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
      goto __pyx_L13_try_end;
      __pyx_L8_error:;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "setools/policyrep/terule.pxi":359
 *             try:
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"
 *             except RuleNotConditional:             # <<<<<<<<<<<<<<
 *                 pass
 * 
*/
      __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_2, &__pyx_t_16);
      __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_RuleNotConditional); if (unlikely(!__pyx_t_12)) __PYX_ERR(21, 359, __pyx_L10_except_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_22 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_9, __pyx_t_12);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_ErrRestore(__pyx_t_9, __pyx_t_2, __pyx_t_16);
      __pyx_t_9 = 0; __pyx_t_2 = 0; __pyx_t_16 = 0;
      if (__pyx_t_22) {
        __Pyx_ErrRestore(0,0,0);
        goto __pyx_L9_exception_handled;
      }
      goto __pyx_L10_except_error;

      /* "setools/policyrep/terule.pxi":357
 *         if not perms:
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {r.xperm_type} {{ }};"
 *             try:             # <<<<<<<<<<<<<<
 *                 rule_string += f" [ {r.conditional} ]:{r.conditional_block}"
 *             except RuleNotConditional:
*/
      __pyx_L10_except_error:;
      __Pyx_XGIVEREF(__pyx_t_18);
      __Pyx_XGIVEREF(__pyx_t_19);
      __Pyx_XGIVEREF(__pyx_t_20);
      __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
      goto __pyx_L1_error;
      __pyx_L9_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_18);
      __Pyx_XGIVEREF(__pyx_t_19);
      __Pyx_XGIVEREF(__pyx_t_20);
      __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
      __pyx_L13_try_end:;
    }

    /* "setools/policyrep/terule.pxi":362
 *                 pass
 * 
 *             raise LowLevelPolicyError(             # <<<<<<<<<<<<<<
 *                 f"Invalid policy: Found a rule with no extended permissions: {rule_string}.")
 * 
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_LowLevelPolicyError); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 362, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);

    /* "setools/policyrep/terule.pxi":363
 * 
 *             raise LowLevelPolicyError(
 *                 f"Invalid policy: Found a rule with no extended permissions: {rule_string}.")             # <<<<<<<<<<<<<<
 * 
 *         return r
*/
    __pyx_t_23[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_policy_Found_a_rule_with_2;
    __pyx_t_23[1] = __pyx_v_rule_string;
    __pyx_t_23[2] = __pyx_mstate_global->__pyx_kp_u__14;
    __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_23, 3, 59 + __Pyx_PyUnicode_GET_LENGTH(__pyx_v_rule_string) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_v_rule_string));
    if (unlikely(!__pyx_t_12)) __PYX_ERR(21, 363, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_3 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
      __pyx_t_3 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_12};
      __pyx_t_16 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_16)) __PYX_ERR(21, 362, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
    }
    __Pyx_Raise(__pyx_t_16, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __PYX_ERR(21, 362, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":355
 *         r.origin = None
 * 
 *         if not perms:             # <<<<<<<<<<<<<<
 *             rule_string = f"{r.ruletype} {r.source} {r.target}:{r.tclass} {r.xperm_type} {{ }};"
 *             try:
*/
  }

  /* "setools/policyrep/terule.pxi":365
 *                 f"Invalid policy: Found a rule with no extended permissions: {rule_string}.")
 * 
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":299
 *         readonly XpermSet perms
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline AVRuleXperm factory(SELinuxPolicy policy, sepol.avtab_key_t *key,
 *                                     sepol.avtab_datum_t *datum, conditional, conditional_block):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_xperm_type);
  __Pyx_XDECREF(__pyx_v_perms);
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XDECREF(__pyx_v_rule_string);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":367
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.xperm_type}|{self._conditional}|{self._conditional_block}")
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_11AVRuleXperm_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_11AVRuleXperm_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm___hash__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_11AVRuleXperm___hash__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8[13];
  PyObject *__pyx_t_9 = NULL;
  Py_hash_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/terule.pxi":369
 *     def __hash__(self):
 *         return hash(
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.xperm_type}|{self._conditional}|{self._conditional_block}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_xperm_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base._conditional), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = __Pyx_PyUnicode_FromBInt_bint(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8[0] = __pyx_t_1;
  __pyx_t_8[1] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_8[2] = __pyx_t_2;
  __pyx_t_8[3] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_8[4] = __pyx_t_3;
  __pyx_t_8[5] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_8[6] = __pyx_t_4;
  __pyx_t_8[7] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_8[8] = __pyx_t_6;
  __pyx_t_8[9] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_8[10] = __pyx_t_5;
  __pyx_t_8[11] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_8[12] = __pyx_t_7;
  __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_8, 13, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 6 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
  if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":368
 * 
 *     def __hash__(self):
 *         return hash(             # <<<<<<<<<<<<<<
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.xperm_type}|{self._conditional}|{self._conditional_block}")
 * 
*/
  __pyx_t_10 = PyObject_Hash(__pyx_t_9); if (unlikely(__pyx_t_10 == ((Py_hash_t)-1))) __PYX_ERR(21, 368, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_r = __pyx_t_10;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":367
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.xperm_type}|{self._conditional}|{self._conditional_block}")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":371
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.xperm_type}|{self._conditional}|{self._conditional_block}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_2__lt__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_2__lt__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/terule.pxi":372
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 372, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":371
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.xperm_type}|{self._conditional}|{self._conditional_block}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":374
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default type."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_7default_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_7default___get__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_7default___get__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":377
 *     def default(self):
 *         """The rule's default type."""
 *         raise RuleUseError(f"{self.ruletype} rules do not have a default type.")             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_rules_do_not_have_a_default_typ); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(21, 377, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":374
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default type."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.default.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_11AVRuleXperm_6generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":379
 *         raise RuleUseError(f"{self.ruletype} rules do not have a default type.")
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRuleXperm r
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_11AVRuleXperm_4expand, "Expand the rule into an equivalent set of rules without attributes.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_11AVRuleXperm_5expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11AVRuleXperm_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11AVRuleXperm_4expand};
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_4expand(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_4expand(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_28_expand(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 379, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_11AVRuleXperm_6generator8, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_expand, __pyx_mstate_global->__pyx_n_u_AVRuleXperm_expand, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(21, 379, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_11AVRuleXperm_6generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *(*__pyx_t_11)(PyObject *);
  uintptr_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L11_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(21, 379, __pyx_L1_error)
  }

  /* "setools/policyrep/terule.pxi":382
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRuleXperm r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.origin == Py_None);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":383
 *         cdef AVRuleXperm r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
 *                 r.policy = self.policy
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.source;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 383, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_8 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.target;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 383, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_6};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 383, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5);
      __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 383, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 383, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 383, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference);
          ++__pyx_t_9;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 383, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9));
          #else
          __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_9);
          #endif
          ++__pyx_t_9;
        }
        if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 383, __pyx_L1_error)
      } else {
        __pyx_t_2 = __pyx_t_10(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(21, 383, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_2);
      if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
        PyObject* sequence = __pyx_t_2;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(21, 383, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_6);
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_4);
        } else {
          __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 383, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_6);
          __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 383, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_4);
        }
        #else
        __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 383, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 383, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 383, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3);
        index = 0; __pyx_t_6 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_3), 2) < (0)) __PYX_ERR(21, 383, __pyx_L1_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(21, 383, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;

      /* "setools/policyrep/terule.pxi":384
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRuleXperm.__new__(AVRuleXperm)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
*/
      __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_AVRuleXperm(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRuleXperm), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 384, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
      __Pyx_XGOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_t_2));
      __Pyx_GIVEREF((PyObject *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":385
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":386
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
*/
      __pyx_t_12 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_12;

      /* "setools/policyrep/terule.pxi":387
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
*/
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":388
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/terule.pxi":389
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/terule.pxi":390
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.perms = self.perms
 *                 r._xperm_type = self._xperm_type
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.tclass);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":391
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms             # <<<<<<<<<<<<<<
 *                 r._xperm_type = self._xperm_type
 *                 r._conditional = self._conditional
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->perms);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->perms);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->perms);
      __pyx_cur_scope->__pyx_v_r->perms = ((struct __pyx_obj_7setools_9policyrep_XpermSet *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":392
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms
 *                 r._xperm_type = self._xperm_type             # <<<<<<<<<<<<<<
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
*/
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base._xperm_type;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base._xperm_type);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base._xperm_type);
      __pyx_cur_scope->__pyx_v_r->__pyx_base._xperm_type = ((PyObject*)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":393
 *                 r.perms = self.perms
 *                 r._xperm_type = self._xperm_type
 *                 r._conditional = self._conditional             # <<<<<<<<<<<<<<
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base._conditional);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":394
 *                 r._xperm_type = self._xperm_type
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
*/
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->__pyx_base._conditional_block;
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional_block = __pyx_t_1;

      /* "setools/policyrep/terule.pxi":395
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/terule.pxi":396
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 396, __pyx_L1_error)

      /* "setools/policyrep/terule.pxi":383
 *         cdef AVRuleXperm r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
 *                 r.policy = self.policy
*/
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/terule.pxi":382
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRuleXperm r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
*/
    goto __pyx_L4;
  }

  /* "setools/policyrep/terule.pxi":400
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  /*else*/ {
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L11_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 400, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/terule.pxi":379
 *         raise RuleUseError(f"{self.ruletype} rules do not have a default type.")
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRuleXperm r
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":402
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.xperm_type} "
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_11AVRuleXperm_8statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11AVRuleXperm_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_7statement(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_7statement(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v_perms = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9[10];
  size_t __pyx_t_10;
  PyObject *__pyx_t_11[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/terule.pxi":403
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.xperm_type} "
 * 
*/
  if (__pyx_v_self->__pyx_base.rule_string == Py_None) __pyx_t_1 = 0;
  else
  {
    Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_self->__pyx_base.rule_string);
    if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(21, 403, __pyx_L1_error)
    __pyx_t_1 = (__pyx_temp != 0);
  }

  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":404
 *     def statement(self):
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.xperm_type} "             # <<<<<<<<<<<<<<
 * 
 *             # generate short permission notation
*/
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_xperm_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_9[0] = __pyx_t_3;
    __pyx_t_9[1] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_9[2] = __pyx_t_4;
    __pyx_t_9[3] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_9[4] = __pyx_t_5;
    __pyx_t_9[5] = __pyx_mstate_global->__pyx_kp_u__13;
    __pyx_t_9[6] = __pyx_t_6;
    __pyx_t_9[7] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_9[8] = __pyx_t_8;
    __pyx_t_9[9] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_9, 10, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1 * 5 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8));
    if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GIVEREF(__pyx_t_7);
    __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
    __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
    __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_7);
    __pyx_t_7 = 0;

    /* "setools/policyrep/terule.pxi":407
 * 
 *             # generate short permission notation
 *             perms = self.perms             # <<<<<<<<<<<<<<
 *             if perms.ranges() > 1:
 *                 self.rule_string += f"{{ {perms} }};"
*/
    __pyx_t_7 = ((PyObject *)__pyx_v_self->perms);
    __Pyx_INCREF(__pyx_t_7);
    __pyx_v_perms = ((struct __pyx_obj_7setools_9policyrep_XpermSet *)__pyx_t_7);
    __pyx_t_7 = 0;

    /* "setools/policyrep/terule.pxi":408
 *             # generate short permission notation
 *             perms = self.perms
 *             if perms.ranges() > 1:             # <<<<<<<<<<<<<<
 *                 self.rule_string += f"{{ {perms} }};"
 *             else:
*/
    __pyx_t_8 = ((PyObject *)__pyx_v_perms);
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_10 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_ranges, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 408, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
    }
    __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_mstate_global->__pyx_int_1, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 408, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(21, 408, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (__pyx_t_2) {

      /* "setools/policyrep/terule.pxi":409
 *             perms = self.perms
 *             if perms.ranges() > 1:
 *                 self.rule_string += f"{{ {perms} }};"             # <<<<<<<<<<<<<<
 *             else:
 *                 self.rule_string += f"{perms};"
*/
      __pyx_t_8 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_perms), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 409, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u__6;
      __pyx_t_11[1] = __pyx_t_8;
      __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u__31;
      __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_11, 3, 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 3, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8));
      if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 409, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlaceSafe(__pyx_v_self->__pyx_base.rule_string, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 409, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
      __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
      __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/terule.pxi":408
 *             # generate short permission notation
 *             perms = self.perms
 *             if perms.ranges() > 1:             # <<<<<<<<<<<<<<
 *                 self.rule_string += f"{{ {perms} }};"
 *             else:
*/
      goto __pyx_L4;
    }

    /* "setools/policyrep/terule.pxi":411
 *                 self.rule_string += f"{{ {perms} }};"
 *             else:
 *                 self.rule_string += f"{perms};"             # <<<<<<<<<<<<<<
 * 
 *         return self.rule_string
*/
    /*else*/ {
      __pyx_t_8 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_perms), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 411, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_8, __pyx_mstate_global->__pyx_kp_u__2); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 411, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlaceSafe(__pyx_v_self->__pyx_base.rule_string, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 411, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
      __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
      __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;
    }
    __pyx_L4:;

    /* "setools/policyrep/terule.pxi":403
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.xperm_type} "
 * 
*/
  }

  /* "setools/policyrep/terule.pxi":413
 *                 self.rule_string += f"{perms};"
 * 
 *         return self.rule_string             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __pyx_r = __pyx_v_self->__pyx_base.rule_string;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":402
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.xperm_type} "
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_perms);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":297
 * 
 *     cdef:
 *         readonly XpermSet perms             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_5perms_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_5perms___get__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_5perms___get__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->perms);
  __pyx_r = ((PyObject *)__pyx_v_self->perms);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_11AVRuleXperm_10__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11AVRuleXperm_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.__pyx_base.extended); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(13); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base._conditional);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base._conditional);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self->__pyx_base._conditional)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base._xperm_type);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base._xperm_type);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_self->__pyx_base._xperm_type) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_3) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_v_self->__pyx_base.__pyx_base.origin) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->perms);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->perms);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 6, ((PyObject *)__pyx_v_self->perms)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 7, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.rule_string);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 8, __pyx_v_self->__pyx_base.rule_string) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 9, __pyx_v_self->__pyx_base.__pyx_base.ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 10, __pyx_v_self->__pyx_base.__pyx_base.source) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 11, __pyx_v_self->__pyx_base.__pyx_base.target) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 12, ((PyObject *)__pyx_v_self->__pyx_base.tclass)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0x7ba1f46, None), state
*/
  /*else*/ {
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base._conditional) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base._xperm_type != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.origin != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->perms) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.rule_string != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.ruletype != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.source != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.target != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.tclass) != Py_None);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0x7ba1f46, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0x7ba1f46, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0x7ba1f46, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AVRuleXperm); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_129638214);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_129638214);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_129638214) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0x7ba1f46, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0x7ba1f46, None), state
 *     else:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0x7ba1f46, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AVRuleXperm__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AVRuleXperm); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_129638214);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_129638214);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_129638214) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0x7ba1f46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AVRuleXperm__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_11AVRuleXperm_12__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11AVRuleXperm_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0x7ba1f46, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AVRuleXperm__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_AVRuleXperm__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0x7ba1f46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AVRuleXperm__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":422
 *     cdef Type dft
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline TERule factory(SELinuxPolicy policy, sepol.avtab_key_t *key,
 *                                sepol.avtab_datum_t *datum, conditional, conditional_block):
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TERule *__pyx_f_7setools_9policyrep_6TERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block) {
  struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_TERule *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  type_datum_t *__pyx_t_6;
  class_datum_t *__pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":426
 *                                sepol.avtab_datum_t *datum, conditional, conditional_block):
 *         """Factory function for creating TERule objects."""
 *         cdef TERule r = TERule.__new__(TERule)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>key
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_TERule(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERule), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 426, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":427
 *         """Factory function for creating TERule objects."""
 *         cdef TERule r = TERule.__new__(TERule)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":428
 *         cdef TERule r = TERule.__new__(TERule)
 *         r.policy = policy
 *         r.key = <uintptr_t>key             # <<<<<<<<<<<<<<
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
*/
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_key);

  /* "setools/policyrep/terule.pxi":429
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)             # <<<<<<<<<<<<<<
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_key->specified & (~AVTAB_ENABLED))); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":430
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
*/
  __pyx_t_6 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->source_type - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 430, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_t_6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __pyx_v_r->__pyx_base.__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":431
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(datum.data - 1))
*/
  __pyx_t_6 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->target_type - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 431, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_t_6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __pyx_v_r->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":432
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))             # <<<<<<<<<<<<<<
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(datum.data - 1))
 *         r.origin = None
*/
  __pyx_t_7 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_key->target_class - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 432, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_t_7)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.tclass);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.tclass);
  __pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":433
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(datum.data - 1))             # <<<<<<<<<<<<<<
 *         r.origin = None
 *         r._conditional = conditional
*/
  __pyx_t_6 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_datum->data - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 433, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(__pyx_v_policy, __pyx_t_6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->dft);
  __Pyx_DECREF((PyObject *)__pyx_v_r->dft);
  __pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":434
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(datum.data - 1))
 *         r.origin = None             # <<<<<<<<<<<<<<
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __pyx_v_r->__pyx_base.__pyx_base.origin = Py_None;

  /* "setools/policyrep/terule.pxi":435
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(datum.data - 1))
 *         r.origin = None
 *         r._conditional = conditional             # <<<<<<<<<<<<<<
 *         r._conditional_block = conditional_block
 *         return r
*/
  __pyx_t_1 = __pyx_v_conditional;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(21, 435, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base._conditional);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base._conditional);
  __pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":436
 *         r.origin = None
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block             # <<<<<<<<<<<<<<
 *         return r
 * 
*/
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_conditional_block); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(21, 436, __pyx_L1_error)
  __pyx_v_r->__pyx_base._conditional_block = __pyx_t_8;

  /* "setools/policyrep/terule.pxi":437
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":422
 *     cdef Type dft
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline TERule factory(SELinuxPolicy policy, sepol.avtab_key_t *key,
 *                                sepol.avtab_datum_t *datum, conditional, conditional_block):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TERule.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":439
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|{self._conditional}|{self._conditional_block}")
 * 
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_6TERule_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_6TERule_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule___hash__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_6TERule___hash__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[11];
  PyObject *__pyx_t_8 = NULL;
  Py_hash_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/terule.pxi":440
 * 
 *     def __hash__(self):
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|{self._conditional}|{self._conditional_block}")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base._conditional), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyUnicode_FromBInt_bint(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7[0] = __pyx_t_1;
  __pyx_t_7[1] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_7[2] = __pyx_t_2;
  __pyx_t_7[3] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_7[4] = __pyx_t_3;
  __pyx_t_7[5] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_7[6] = __pyx_t_4;
  __pyx_t_7[7] = __pyx_mstate_global->__pyx_kp_u_None_2;
  __pyx_t_7[8] = __pyx_t_5;
  __pyx_t_7[9] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_7[10] = __pyx_t_6;
  __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 11, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 6 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
  if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_9 = PyObject_Hash(__pyx_t_8); if (unlikely(__pyx_t_9 == ((Py_hash_t)-1))) __PYX_ERR(21, 440, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_r = __pyx_t_9;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":439
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|{self._conditional}|{self._conditional_block}")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.TERule.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":442
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|{self._conditional}|{self._conditional_block}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_2__lt__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_2__lt__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/terule.pxi":443
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 443, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":442
 *         return hash(f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|None|{self._conditional}|{self._conditional_block}")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TERule.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":445
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def perms(self):
 *         """The rule's permission set."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_5perms_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_5perms___get__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_5perms___get__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":448
 *     def perms(self):
 *         """The rule's permission set."""
 *         raise RuleUseError(f"{self.ruletype} rules do not have a permission set.")             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_rules_do_not_have_a_permission); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 448, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(21, 448, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":445
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def perms(self):
 *         """The rule's permission set."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TERule.perms.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":450
 *         raise RuleUseError(f"{self.ruletype} rules do not have a permission set.")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default type."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_7default_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_7default___get__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_7default___get__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":453
 *     def default(self):
 *         """The rule's default type."""
 *         return self.dft             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->dft);
  __pyx_r = ((PyObject *)__pyx_v_self->dft);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":450
 *         raise RuleUseError(f"{self.ruletype} rules do not have a permission set.")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default type."""
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_6TERule_6generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":455
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef TERule r
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_6TERule_4expand, "Expand the rule into an equivalent set of rules without attributes.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_6TERule_5expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6TERule_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_6TERule_4expand};
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_4expand(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_4expand(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_29_expand(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 455, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_6TERule_6generator9, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_expand, __pyx_mstate_global->__pyx_n_u_TERule_expand, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(21, 455, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TERule.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_6TERule_6generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *(*__pyx_t_11)(PyObject *);
  uintptr_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L11_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(21, 455, __pyx_L1_error)
  }

  /* "setools/policyrep/terule.pxi":458
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef TERule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = TERule.__new__(TERule)
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.origin == Py_None);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":459
 *         cdef TERule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = TERule.__new__(TERule)
 *                 r.policy = self.policy
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 459, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 459, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.source;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 459, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_8 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.target;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 459, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_6};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 459, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5);
      __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 459, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 459, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 459, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference);
          ++__pyx_t_9;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 459, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9));
          #else
          __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_9);
          #endif
          ++__pyx_t_9;
        }
        if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 459, __pyx_L1_error)
      } else {
        __pyx_t_2 = __pyx_t_10(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(21, 459, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_2);
      if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
        PyObject* sequence = __pyx_t_2;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(21, 459, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_6);
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_4);
        } else {
          __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 459, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_6);
          __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 459, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_4);
        }
        #else
        __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 459, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 459, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 459, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3);
        index = 0; __pyx_t_6 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_3), 2) < (0)) __PYX_ERR(21, 459, __pyx_L1_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(21, 459, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;

      /* "setools/policyrep/terule.pxi":460
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = TERule.__new__(TERule)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
*/
      __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_TERule(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERule), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 460, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
      __Pyx_XGOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_t_2));
      __Pyx_GIVEREF((PyObject *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":461
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = TERule.__new__(TERule)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":462
 *                 r = TERule.__new__(TERule)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
*/
      __pyx_t_12 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_12;

      /* "setools/policyrep/terule.pxi":463
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
*/
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":464
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/terule.pxi":465
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/terule.pxi":466
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.dft = self.dft
 *                 r.origin = self
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.tclass);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":467
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 r._conditional = self._conditional
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->dft);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->dft);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->dft);
      __pyx_cur_scope->__pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":468
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/terule.pxi":469
 *                 r.dft = self.dft
 *                 r.origin = self
 *                 r._conditional = self._conditional             # <<<<<<<<<<<<<<
 *                 r._conditional_block = self._conditional_block
 *                 yield r
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base._conditional);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":470
 *                 r.origin = self
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block             # <<<<<<<<<<<<<<
 *                 yield r
 * 
*/
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->__pyx_base._conditional_block;
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional_block = __pyx_t_1;

      /* "setools/policyrep/terule.pxi":471
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 471, __pyx_L1_error)

      /* "setools/policyrep/terule.pxi":459
 *         cdef TERule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = TERule.__new__(TERule)
 *                 r.policy = self.policy
*/
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/terule.pxi":458
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef TERule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = TERule.__new__(TERule)
*/
    goto __pyx_L4;
  }

  /* "setools/policyrep/terule.pxi":475
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  /*else*/ {
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L11_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 475, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/terule.pxi":455
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef TERule r
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":477
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6TERule_8statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6TERule_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_7statement(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_7statement(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9[10];
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13[4];
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/terule.pxi":478
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
 * 
*/
  if (__pyx_v_self->__pyx_base.rule_string == Py_None) __pyx_t_1 = 0;
  else
  {
    Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_self->__pyx_base.rule_string);
    if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(21, 478, __pyx_L1_error)
    __pyx_t_1 = (__pyx_temp != 0);
  }

  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":479
 *     def statement(self):
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"             # <<<<<<<<<<<<<<
 * 
 *             try:
*/
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_9[0] = __pyx_t_3;
    __pyx_t_9[1] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_9[2] = __pyx_t_4;
    __pyx_t_9[3] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_9[4] = __pyx_t_5;
    __pyx_t_9[5] = __pyx_mstate_global->__pyx_kp_u__13;
    __pyx_t_9[6] = __pyx_t_6;
    __pyx_t_9[7] = __pyx_mstate_global->__pyx_kp_u_;
    __pyx_t_9[8] = __pyx_t_8;
    __pyx_t_9[9] = __pyx_mstate_global->__pyx_kp_u__2;
    __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_9, 10, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1 * 5 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8));
    if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GIVEREF(__pyx_t_7);
    __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
    __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
    __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_7);
    __pyx_t_7 = 0;

    /* "setools/policyrep/terule.pxi":481
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += f" [ {self.conditional} ]:{self.conditional_block}"
 *             except RuleNotConditional:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_12);
      /*try:*/ {

        /* "setools/policyrep/terule.pxi":482
 * 
 *             try:
 *                 self.rule_string += f" [ {self.conditional} ]:{self.conditional_block}"             # <<<<<<<<<<<<<<
 *             except RuleNotConditional:
 *                 pass
*/
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_conditional); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 482, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 482, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_conditional_block); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 482, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 482, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u__33;
        __pyx_t_13[1] = __pyx_t_8;
        __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__34;
        __pyx_t_13[3] = __pyx_t_6;
        __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_13, 4, 3 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
        if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 482, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlaceSafe(__pyx_v_self->__pyx_base.rule_string, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 482, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GIVEREF(__pyx_t_6);
        __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
        __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
        __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_6);
        __pyx_t_6 = 0;

        /* "setools/policyrep/terule.pxi":481
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += f" [ {self.conditional} ]:{self.conditional_block}"
 *             except RuleNotConditional:
*/
      }
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "setools/policyrep/terule.pxi":483
 *             try:
 *                 self.rule_string += f" [ {self.conditional} ]:{self.conditional_block}"
 *             except RuleNotConditional:             # <<<<<<<<<<<<<<
 *                 pass
 * 
*/
      __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_RuleNotConditional); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 483, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_14 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_6, __pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0;
      if (__pyx_t_14) {
        __Pyx_ErrRestore(0,0,0);
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;

      /* "setools/policyrep/terule.pxi":481
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += f" [ {self.conditional} ]:{self.conditional_block}"
 *             except RuleNotConditional:
*/
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_XGIVEREF(__pyx_t_12);
      __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      goto __pyx_L1_error;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_XGIVEREF(__pyx_t_12);
      __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      __pyx_L9_try_end:;
    }

    /* "setools/policyrep/terule.pxi":478
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
 * 
*/
  }

  /* "setools/policyrep/terule.pxi":486
 *                 pass
 * 
 *         return self.rule_string             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __pyx_r = __pyx_v_self->__pyx_base.rule_string;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":477
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.TERule.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6TERule_10__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6TERule_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.dft, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.__pyx_base.extended); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(13); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base._conditional);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base._conditional);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self->__pyx_base._conditional)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base._xperm_type);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base._xperm_type);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_self->__pyx_base._xperm_type) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->dft);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->dft);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, ((PyObject *)__pyx_v_self->dft)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_t_3) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 6, __pyx_v_self->__pyx_base.__pyx_base.origin) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 7, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.rule_string);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 8, __pyx_v_self->__pyx_base.rule_string) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 9, __pyx_v_self->__pyx_base.__pyx_base.ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 10, __pyx_v_self->__pyx_base.__pyx_base.source) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 11, __pyx_v_self->__pyx_base.__pyx_base.target) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 12, ((PyObject *)__pyx_v_self->__pyx_base.tclass)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.dft, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.dft, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.dft is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.dft, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.dft is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_TERule, (type(self), 0xb33fdce, None), state
*/
  /*else*/ {
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base._conditional) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base._xperm_type != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->dft) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.origin != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.rule_string != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.ruletype != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.source != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.target != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.tclass) != Py_None);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.dft is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_TERule, (type(self), 0xb33fdce, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.dft is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_TERule, (type(self), 0xb33fdce, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_TERule, (type(self), 0xb33fdce, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TERule); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_187956686);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_187956686);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_187956686) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.dft is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_TERule, (type(self), 0xb33fdce, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_TERule, (type(self), 0xb33fdce, None), state
 *     else:
 *         return __pyx_unpickle_TERule, (type(self), 0xb33fdce, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_TERule__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TERule); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_187956686);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_187956686);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_187956686) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TERule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TERule, (type(self), 0xb33fdce, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TERule__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_6TERule_12__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6TERule_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.TERule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_TERule, (type(self), 0xb33fdce, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_TERule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_TERule__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TERule, (type(self), 0xb33fdce, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TERule__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TERule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":497
 *         readonly str filename
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline FileNameTERule factory(SELinuxPolicy policy,
 *                                        sepol.filename_trans_key_t *key,
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_f_7setools_9policyrep_14FileNameTERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, filename_trans_key_t *__pyx_v_key, struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_stype, size_t __pyx_v_otype) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  type_datum_t *__pyx_t_3;
  class_datum_t *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":502
 *                                        Type stype, size_t otype):
 *         """Factory function for creating FileNameTERule objects."""
 *         cdef FileNameTERule r = FileNameTERule.__new__(FileNameTERule)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>key
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_FileNameTERule(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERule), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 502, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":503
 *         """Factory function for creating FileNameTERule objects."""
 *         cdef FileNameTERule r = FileNameTERule.__new__(FileNameTERule)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype.type_transition
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":504
 *         cdef FileNameTERule r = FileNameTERule.__new__(FileNameTERule)
 *         r.policy = policy
 *         r.key = <uintptr_t>key             # <<<<<<<<<<<<<<
 *         r.ruletype = TERuletype.type_transition
 *         r.source = stype
*/
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_key);

  /* "setools/policyrep/terule.pxi":505
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype.type_transition             # <<<<<<<<<<<<<<
 *         r.source = stype
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.ttype - 1))
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_transition); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":506
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype.type_transition
 *         r.source = stype             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.ttype - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.tclass - 1))
*/
  __Pyx_INCREF((PyObject *)__pyx_v_stype);
  __Pyx_GIVEREF((PyObject *)__pyx_v_stype);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __pyx_v_r->__pyx_base.__pyx_base.source = ((PyObject *)__pyx_v_stype);

  /* "setools/policyrep/terule.pxi":507
 *         r.ruletype = TERuletype.type_transition
 *         r.source = stype
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.ttype - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.tclass - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(otype - 1))
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->ttype - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 507, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __pyx_v_r->__pyx_base.__pyx_base.target = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":508
 *         r.source = stype
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.ttype - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.tclass - 1))             # <<<<<<<<<<<<<<
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(otype - 1))
 *         r.filename = intern(key.name)
*/
  __pyx_t_4 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_key->tclass - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 508, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_t_4)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->__pyx_base.tclass);
  __Pyx_DECREF((PyObject *)__pyx_v_r->__pyx_base.tclass);
  __pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":509
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.ttype - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.tclass - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(otype - 1))             # <<<<<<<<<<<<<<
 *         r.filename = intern(key.name)
 *         r.origin = None
*/
  __pyx_t_3 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_otype - 1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 509, __pyx_L1_error)
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(__pyx_v_policy, __pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_r->dft);
  __Pyx_DECREF((PyObject *)__pyx_v_r->dft);
  __pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":510
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.tclass - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(otype - 1))
 *         r.filename = intern(key.name)             # <<<<<<<<<<<<<<
 *         r.origin = None
 *         return r
*/
  __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v_key->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_Intern(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(21, 510, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->filename);
  __Pyx_DECREF(__pyx_v_r->filename);
  __pyx_v_r->filename = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":511
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(otype - 1))
 *         r.filename = intern(key.name)
 *         r.origin = None             # <<<<<<<<<<<<<<
 *         return r
 * 
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __pyx_v_r->__pyx_base.__pyx_base.origin = Py_None;

  /* "setools/policyrep/terule.pxi":512
 *         r.filename = intern(key.name)
 *         r.origin = None
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_r);
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":497
 *         readonly str filename
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline FileNameTERule factory(SELinuxPolicy policy,
 *                                        sepol.filename_trans_key_t *key,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":514
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.filename}|None|None")
*/

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_14FileNameTERule_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_14FileNameTERule_1__hash__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule___hash__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_hash_t __pyx_pf_7setools_9policyrep_14FileNameTERule___hash__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6[10];
  PyObject *__pyx_t_7 = NULL;
  Py_hash_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/terule.pxi":516
 *     def __hash__(self):
 *         return hash(
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.filename}|None|None")             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_self->filename); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6[0] = __pyx_t_1;
  __pyx_t_6[1] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_6[2] = __pyx_t_2;
  __pyx_t_6[3] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_6[4] = __pyx_t_3;
  __pyx_t_6[5] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_6[6] = __pyx_t_4;
  __pyx_t_6[7] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_6[8] = __pyx_t_5;
  __pyx_t_6[9] = __pyx_mstate_global->__pyx_kp_u_None_None;
  __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_6, 10, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 10, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
  if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/terule.pxi":515
 * 
 *     def __hash__(self):
 *         return hash(             # <<<<<<<<<<<<<<
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.filename}|None|None")
 * 
*/
  __pyx_t_8 = PyObject_Hash(__pyx_t_7); if (unlikely(__pyx_t_8 == ((Py_hash_t)-1))) __PYX_ERR(21, 515, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_r = __pyx_t_8;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":514
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.filename}|None|None")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":518
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.filename}|None|None")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_2__lt__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_2__lt__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/terule.pxi":519
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Unicode(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 519, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":518
 *             f"{self.ruletype}|{self.source}|{self.target}|{self.tclass}|{self.filename}|None|None")
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":521
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def perms(self):
 *         """The rule's permission set."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_5perms_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_5perms___get__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_5perms___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":524
 *     def perms(self):
 *         """The rule's permission set."""
 *         raise RuleUseError(f"{self.ruletype} rules do not have a permission set.")             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RuleUseError); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_rules_do_not_have_a_permission); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(21, 524, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":521
 *         return str(self) < str(other)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def perms(self):
 *         """The rule's permission set."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.perms.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":526
 *         raise RuleUseError(f"{self.ruletype} rules do not have a permission set.")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default type."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_7default_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_7default___get__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_7default___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":529
 *     def default(self):
 *         """The rule's default type."""
 *         return self.dft             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->dft);
  __pyx_r = ((PyObject *)__pyx_v_self->dft);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":526
 *         raise RuleUseError(f"{self.ruletype} rules do not have a permission set.")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def default(self):
 *         """The rule's default type."""
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_14FileNameTERule_6generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":531
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef FileNameTERule r
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_14FileNameTERule_4expand, "Expand the rule into an equivalent set of rules without attributes.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_14FileNameTERule_5expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14FileNameTERule_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_14FileNameTERule_4expand};
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_5expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_4expand(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_4expand(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_30_expand(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 531, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_14FileNameTERule_6generator10, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_expand, __pyx_mstate_global->__pyx_n_u_FileNameTERule_expand, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(21, 531, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_14FileNameTERule_6generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *(*__pyx_t_11)(PyObject *);
  uintptr_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L11_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(21, 531, __pyx_L1_error)
  }

  /* "setools/policyrep/terule.pxi":534
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef FileNameTERule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = FileNameTERule.__new__(FileNameTERule)
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.origin == Py_None);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":535
 *         cdef FileNameTERule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = FileNameTERule.__new__(FileNameTERule)
 *                 r.policy = self.policy
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 535, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 535, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.source;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 535, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_8 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.target;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expand, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 535, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_6};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 535, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5);
      __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 535, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(21, 535, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 535, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference);
          ++__pyx_t_9;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 535, __pyx_L1_error)
            #endif
            if (__pyx_t_9 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9));
          #else
          __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_9);
          #endif
          ++__pyx_t_9;
        }
        if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 535, __pyx_L1_error)
      } else {
        __pyx_t_2 = __pyx_t_10(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(21, 535, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_2);
      if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
        PyObject* sequence = __pyx_t_2;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(21, 535, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_6);
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_4);
        } else {
          __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 535, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_6);
          __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 535, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_4);
        }
        #else
        __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 535, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 535, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 535, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3);
        index = 0; __pyx_t_6 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_3), 2) < (0)) __PYX_ERR(21, 535, __pyx_L1_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(21, 535, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;

      /* "setools/policyrep/terule.pxi":536
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = FileNameTERule.__new__(FileNameTERule)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
*/
      __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_FileNameTERule(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERule), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 536, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
      __Pyx_XGOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_t_2));
      __Pyx_GIVEREF((PyObject *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":537
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = FileNameTERule.__new__(FileNameTERule)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":538
 *                 r = FileNameTERule.__new__(FileNameTERule)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
*/
      __pyx_t_12 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_12;

      /* "setools/policyrep/terule.pxi":539
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
*/
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":540
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/terule.pxi":541
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/terule.pxi":542
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.dft = self.dft
 *                 r.filename = self.filename
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.tclass);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":543
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft             # <<<<<<<<<<<<<<
 *                 r.filename = self.filename
 *                 r.origin = None
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->dft);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->dft);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->dft);
      __pyx_cur_scope->__pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":544
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
 *                 r.filename = self.filename             # <<<<<<<<<<<<<<
 *                 r.origin = None
 *                 r._conditional = self._conditional
*/
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->filename;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->filename);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->filename);
      __pyx_cur_scope->__pyx_v_r->filename = ((PyObject*)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":545
 *                 r.dft = self.dft
 *                 r.filename = self.filename
 *                 r.origin = None             # <<<<<<<<<<<<<<
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
*/
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin = Py_None;

      /* "setools/policyrep/terule.pxi":546
 *                 r.filename = self.filename
 *                 r.origin = None
 *                 r._conditional = self._conditional             # <<<<<<<<<<<<<<
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base._conditional);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __Pyx_DECREF((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":547
 *                 r.origin = None
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
*/
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->__pyx_base._conditional_block;
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional_block = __pyx_t_1;

      /* "setools/policyrep/terule.pxi":548
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/terule.pxi":549
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
*/
      __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 549, __pyx_L1_error)

      /* "setools/policyrep/terule.pxi":535
 *         cdef FileNameTERule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = FileNameTERule.__new__(FileNameTERule)
 *                 r.policy = self.policy
*/
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/terule.pxi":534
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef FileNameTERule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = FileNameTERule.__new__(FileNameTERule)
*/
    goto __pyx_L4;
  }

  /* "setools/policyrep/terule.pxi":553
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  /*else*/ {
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L11_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 553, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/terule.pxi":531
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef FileNameTERule r
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":555
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default} {self.filename};"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14FileNameTERule_8statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14FileNameTERule_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_7statement(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_7statement(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[12];
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/terule.pxi":556
 * 
 *     def statement(self):
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default} {self.filename};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.ruletype, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_self->filename); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7[0] = __pyx_t_1;
  __pyx_t_7[1] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_7[2] = __pyx_t_2;
  __pyx_t_7[3] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_7[4] = __pyx_t_3;
  __pyx_t_7[5] = __pyx_mstate_global->__pyx_kp_u__13;
  __pyx_t_7[6] = __pyx_t_4;
  __pyx_t_7[7] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_7[8] = __pyx_t_6;
  __pyx_t_7[9] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_7[10] = __pyx_t_5;
  __pyx_t_7[11] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 12, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 6 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
  if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":555
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default} {self.filename};"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":495
 *     cdef:
 *         Type dft
 *         readonly str filename             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_8filename_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_8filename_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_8filename___get__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_8filename___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->filename);
  __pyx_r = __pyx_v_self->filename;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14FileNameTERule_10__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14FileNameTERule_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.dft, self.extended, self.filename, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.__pyx_base.extended); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(14); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base._conditional);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base._conditional);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self->__pyx_base._conditional)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base._xperm_type);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base._xperm_type);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_self->__pyx_base._xperm_type) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->dft);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->dft);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, ((PyObject *)__pyx_v_self->dft)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->filename);
  __Pyx_GIVEREF(__pyx_v_self->filename);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_v_self->filename) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 6, __pyx_t_3) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 7, __pyx_v_self->__pyx_base.__pyx_base.origin) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 8, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.rule_string);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 9, __pyx_v_self->__pyx_base.rule_string) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 10, __pyx_v_self->__pyx_base.__pyx_base.ruletype) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 11, __pyx_v_self->__pyx_base.__pyx_base.source) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 12, __pyx_v_self->__pyx_base.__pyx_base.target) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.tclass);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.tclass);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 13, ((PyObject *)__pyx_v_self->__pyx_base.tclass)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.dft, self.extended, self.filename, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.dft, self.extended, self.filename, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.dft is not None or self.filename is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self._xperm_type, self.dft, self.extended, self.filename, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.dft is not None or self.filename is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0x8b9259a, None), state
*/
  /*else*/ {
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base._conditional) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base._xperm_type != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->dft) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->filename != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.origin != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.rule_string != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.ruletype != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.source != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.target != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.tclass) != Py_None);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.dft is not None or self.filename is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0x8b9259a, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.dft is not None or self.filename is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0x8b9259a, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0x8b9259a, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FileNameTERule); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_146351514);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_146351514);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_146351514) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self._xperm_type is not None or self.dft is not None or self.filename is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0x8b9259a, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0x8b9259a, None), state
 *     else:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0x8b9259a, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_FileNameTERule__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FileNameTERule); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_146351514);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_146351514);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_146351514) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0x8b9259a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FileNameTERule__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14FileNameTERule_12__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14FileNameTERule_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0x8b9259a, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_FileNameTERule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_FileNameTERule__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0x8b9259a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FileNameTERule__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":573
 *         object cond_block
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.avtab *table):
 *         """Factory function for creating TERule iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_14TERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct avtab *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":576
 *     cdef factory(SELinuxPolicy policy, sepol.avtab *table):
 *         """Factory function for creating TERule iterators."""
 *         i = TERuleIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERuleIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 576, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":577
 *         """Factory function for creating TERule iterators."""
 *         i = TERuleIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.policy);
  __pyx_v_i->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":578
 *         i = TERuleIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->table = __pyx_v_table;

  /* "setools/policyrep/terule.pxi":579
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 579, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":580
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     cdef void _next_bucket(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":573
 *         object cond_block
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.avtab *table):
 *         """Factory function for creating TERule iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":582
 *         return i
 * 
 *     cdef void _next_bucket(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
*/

static void __pyx_f_7setools_9policyrep_14TERuleIterator__next_bucket(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  int __pyx_t_1;

  /* "setools/policyrep/terule.pxi":584
 *     cdef void _next_bucket(self):
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1             # <<<<<<<<<<<<<<
 *         if self.bucket < self.table.nslot:
 *             self.node = self.table.htable[self.bucket]
*/
  __pyx_v_self->bucket = (__pyx_v_self->bucket + 1);

  /* "setools/policyrep/terule.pxi":585
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 *         if self.bucket < self.table.nslot:             # <<<<<<<<<<<<<<
 *             self.node = self.table.htable[self.bucket]
 *         else:
*/
  __pyx_t_1 = (__pyx_v_self->bucket < __pyx_v_self->table->nslot);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":586
 *         self.bucket += 1
 *         if self.bucket < self.table.nslot:
 *             self.node = self.table.htable[self.bucket]             # <<<<<<<<<<<<<<
 *         else:
 *             self.node = NULL
*/
    __pyx_v_self->node = (__pyx_v_self->table->htable[__pyx_v_self->bucket]);

    /* "setools/policyrep/terule.pxi":585
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 *         if self.bucket < self.table.nslot:             # <<<<<<<<<<<<<<
 *             self.node = self.table.htable[self.bucket]
 *         else:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/terule.pxi":588
 *             self.node = self.table.htable[self.bucket]
 *         else:
 *             self.node = NULL             # <<<<<<<<<<<<<<
 * 
 *     cdef void _next_node(self):
*/
  /*else*/ {
    __pyx_v_self->node = NULL;
  }
  __pyx_L3:;

  /* "setools/policyrep/terule.pxi":582
 *         return i
 * 
 *     cdef void _next_bucket(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
*/

  /* function exit code */
}

/* "setools/policyrep/terule.pxi":590
 *             self.node = NULL
 * 
 *     cdef void _next_node(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
*/

static void __pyx_f_7setools_9policyrep_14TERuleIterator__next_node(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  int __pyx_t_1;
  int __pyx_t_2;
  struct avtab_node *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "setools/policyrep/terule.pxi":592
 *     cdef void _next_node(self):
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:             # <<<<<<<<<<<<<<
 *             self.node = self.node.next
 *         else:
*/
  __pyx_t_2 = (__pyx_v_self->node != NULL);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_self->node->next != NULL);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":593
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
 *             self.node = self.node.next             # <<<<<<<<<<<<<<
 *         else:
 *             self._next_bucket()
*/
    __pyx_t_3 = __pyx_v_self->node->next;
    __pyx_v_self->node = __pyx_t_3;

    /* "setools/policyrep/terule.pxi":592
 *     cdef void _next_node(self):
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:             # <<<<<<<<<<<<<<
 *             self.node = self.node.next
 *         else:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/terule.pxi":595
 *             self.node = self.node.next
 *         else:
 *             self._next_bucket()             # <<<<<<<<<<<<<<
 *             while self.bucket < self.table.nslot and self.node == NULL:
 *                 self._next_bucket()
*/
  /*else*/ {
    ((struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *)__pyx_v_self->__pyx_vtab)->_next_bucket(__pyx_v_self); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 595, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":596
 *         else:
 *             self._next_bucket()
 *             while self.bucket < self.table.nslot and self.node == NULL:             # <<<<<<<<<<<<<<
 *                 self._next_bucket()
 * 
*/
    while (1) {
      __pyx_t_2 = (__pyx_v_self->bucket < __pyx_v_self->table->nslot);
      if (__pyx_t_2) {
      } else {
        __pyx_t_1 = __pyx_t_2;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_2 = (__pyx_v_self->node == NULL);
      __pyx_t_1 = __pyx_t_2;
      __pyx_L8_bool_binop_done:;
      if (!__pyx_t_1) break;

      /* "setools/policyrep/terule.pxi":597
 *             self._next_bucket()
 *             while self.bucket < self.table.nslot and self.node == NULL:
 *                 self._next_bucket()             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
      ((struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *)__pyx_v_self->__pyx_vtab)->_next_bucket(__pyx_v_self); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 597, __pyx_L1_error)
    }
  }
  __pyx_L3:;

  /* "setools/policyrep/terule.pxi":590
 *             self.node = NULL
 * 
 *     cdef void _next_node(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator._next_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "setools/policyrep/terule.pxi":599
 *                 self._next_bucket()
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.avtab_key_t *key
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator___next__(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator___next__(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  avtab_key_t *__pyx_v_key;
  avtab_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/terule.pxi":604
 *             sepol.avtab_datum_t *datum
 * 
 *         if self.table == NULL or self.table.nel == 0 or self.bucket >= self.table.nslot:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_2 = (__pyx_v_self->table == NULL);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_self->table->nel == 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_self->bucket >= __pyx_v_self->table->nslot);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":605
 * 
 *         if self.table == NULL or self.table.nel == 0 or self.bucket >= self.table.nslot:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         key = &self.node.key
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/terule.pxi":604
 *             sepol.avtab_datum_t *datum
 * 
 *         if self.table == NULL or self.table.nel == 0 or self.bucket >= self.table.nslot:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/terule.pxi":607
 *             raise StopIteration
 * 
 *         key = &self.node.key             # <<<<<<<<<<<<<<
 *         datum = &self.node.datum
 * 
*/
  __pyx_v_key = (&__pyx_v_self->node->key);

  /* "setools/policyrep/terule.pxi":608
 * 
 *         key = &self.node.key
 *         datum = &self.node.datum             # <<<<<<<<<<<<<<
 * 
 *         self._next_node()
*/
  __pyx_v_datum = (&__pyx_v_self->node->datum);

  /* "setools/policyrep/terule.pxi":610
 *         datum = &self.node.datum
 * 
 *         self._next_node()             # <<<<<<<<<<<<<<
 * 
 *         if key.specified & sepol.AVRULE_AV:
*/
  ((struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *)__pyx_v_self->__pyx_vtab)->_next_node(__pyx_v_self); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 610, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":612
 *         self._next_node()
 * 
 *         if key.specified & sepol.AVRULE_AV:             # <<<<<<<<<<<<<<
 *             return AVRule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_TYPE:
*/
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_AV) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":613
 * 
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, None, None)             # <<<<<<<<<<<<<<
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, None, None)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = ((PyObject *)__pyx_f_7setools_9policyrep_6AVRule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_key, __pyx_v_datum, Py_None, Py_None)); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 613, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":612
 *         self._next_node()
 * 
 *         if key.specified & sepol.AVRULE_AV:             # <<<<<<<<<<<<<<
 *             return AVRule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_TYPE:
*/
  }

  /* "setools/policyrep/terule.pxi":614
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_TYPE:             # <<<<<<<<<<<<<<
 *             return TERule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_XPERMS:
*/
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_TYPE) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":615
 *             return AVRule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, None, None)             # <<<<<<<<<<<<<<
 *         elif key.specified & sepol.AVRULE_XPERMS:
 *             return AVRuleXperm.factory(self.policy, key, datum, None, None)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_6TERule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_4), __pyx_v_key, __pyx_v_datum, Py_None, Py_None)); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 615, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":614
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_TYPE:             # <<<<<<<<<<<<<<
 *             return TERule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_XPERMS:
*/
  }

  /* "setools/policyrep/terule.pxi":616
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_XPERMS:             # <<<<<<<<<<<<<<
 *             return AVRuleXperm.factory(self.policy, key, datum, None, None)
 *         else:
*/
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_XPERMS) != 0);
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":617
 *             return TERule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_XPERMS:
 *             return AVRuleXperm.factory(self.policy, key, datum, None, None)             # <<<<<<<<<<<<<<
 *         else:
 *             raise LowLevelPolicyError(f"Unknown AV rule type 0x{key.specified:04x}")
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = ((PyObject *)__pyx_f_7setools_9policyrep_11AVRuleXperm_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_key, __pyx_v_datum, Py_None, Py_None)); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 617, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":616
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_XPERMS:             # <<<<<<<<<<<<<<
 *             return AVRuleXperm.factory(self.policy, key, datum, None, None)
 *         else:
*/
  }

  /* "setools/policyrep/terule.pxi":619
 *             return AVRuleXperm.factory(self.policy, key, datum, None, None)
 *         else:
 *             raise LowLevelPolicyError(f"Unknown AV rule type 0x{key.specified:04x}")             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  /*else*/ {
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_LowLevelPolicyError); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 619, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyUnicode_From_uint16_t(__pyx_v_key->specified, 4, '0', 'x'); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 619, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Unknown_AV_rule_type_0x, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 619, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 619, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(21, 619, __pyx_L1_error)
  }

  /* "setools/policyrep/terule.pxi":599
 *                 self._next_bucket()
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.avtab_key_t *key
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.TERuleIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":621
 *             raise LowLevelPolicyError(f"Unknown AV rule type 0x{key.specified:04x}")
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self.table.nel
 * 
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_14TERuleIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_14TERuleIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_14TERuleIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  Py_ssize_t __pyx_r;

  /* "setools/policyrep/terule.pxi":622
 * 
 *     def __len__(self):
 *         return self.table.nel             # <<<<<<<<<<<<<<
 * 
 *     def ruletype_count(self):
*/
  __pyx_r = __pyx_v_self->table->nel;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":621
 *             raise LowLevelPolicyError(f"Unknown AV rule type 0x{key.specified:04x}")
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self.table.nel
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":624
 *         return self.table.nel
 * 
 *     def ruletype_count(self):             # <<<<<<<<<<<<<<
 *         """
 *         Determine the number of rules.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_5ruletype_count(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_14TERuleIterator_4ruletype_count, "\n        Determine the number of rules.\n\n        Return: collections.Counter object keyed by TERuletype.value\n        ");
static PyMethodDef __pyx_mdef_7setools_9policyrep_14TERuleIterator_5ruletype_count = {"ruletype_count", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14TERuleIterator_5ruletype_count, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_14TERuleIterator_4ruletype_count};
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_5ruletype_count(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ruletype_count (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("ruletype_count", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("ruletype_count", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator_4ruletype_count(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_4ruletype_count(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  avtab_key_t *__pyx_v_key;
  avtab_ptr_t __pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_count = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  avtab_key_t *__pyx_t_7;
  int __pyx_t_8;
  struct avtab_node *__pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ruletype_count", 0);

  /* "setools/policyrep/terule.pxi":633
 *             sepol.avtab_key_t *key
 *             sepol.avtab_ptr_t node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 * 
 *         count = collections.Counter()
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/terule.pxi":635
 *             uint32_t bucket = 0
 * 
 *         count = collections.Counter()             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].nslot:
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_collections); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Counter); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_count = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":637
 *         count = collections.Counter()
 * 
 *         while bucket < self.table[0].nslot:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_6 = (__pyx_v_bucket < (__pyx_v_self->table[0]).nslot);
    if (!__pyx_t_6) break;

    /* "setools/policyrep/terule.pxi":638
 * 
 *         while bucket < self.table[0].nslot:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 key = &node.key if node else NULL
*/
    __pyx_v_node = ((__pyx_v_self->table[0]).htable[__pyx_v_bucket]);

    /* "setools/policyrep/terule.pxi":639
 *         while bucket < self.table[0].nslot:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 key = &node.key if node else NULL
 *                 if key != NULL:
*/
    while (1) {
      __pyx_t_6 = (__pyx_v_node != NULL);
      if (!__pyx_t_6) break;

      /* "setools/policyrep/terule.pxi":640
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 key = &node.key if node else NULL             # <<<<<<<<<<<<<<
 *                 if key != NULL:
 *                     count[key.specified & ~sepol.AVTAB_ENABLED] += 1
*/
      __pyx_t_6 = (__pyx_v_node != 0);
      if (__pyx_t_6) {
        __pyx_t_7 = (&__pyx_v_node->key);
      } else {
        __pyx_t_7 = NULL;
      }
      __pyx_v_key = __pyx_t_7;

      /* "setools/policyrep/terule.pxi":641
 *             while node != NULL:
 *                 key = &node.key if node else NULL
 *                 if key != NULL:             # <<<<<<<<<<<<<<
 *                     count[key.specified & ~sepol.AVTAB_ENABLED] += 1
 * 
*/
      __pyx_t_6 = (__pyx_v_key != NULL);
      if (__pyx_t_6) {

        /* "setools/policyrep/terule.pxi":642
 *                 key = &node.key if node else NULL
 *                 if key != NULL:
 *                     count[key.specified & ~sepol.AVTAB_ENABLED] += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        __pyx_t_8 = (__pyx_v_key->specified & (~AVTAB_ENABLED));
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_count, __pyx_t_8, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 642, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 642, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely((__Pyx_SetItemInt(__pyx_v_count, __pyx_t_8, __pyx_t_4, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(21, 642, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "setools/policyrep/terule.pxi":641
 *             while node != NULL:
 *                 key = &node.key if node else NULL
 *                 if key != NULL:             # <<<<<<<<<<<<<<
 *                     count[key.specified & ~sepol.AVTAB_ENABLED] += 1
 * 
*/
      }

      /* "setools/policyrep/terule.pxi":644
 *                     count[key.specified & ~sepol.AVTAB_ENABLED] += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_9 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_9;
    }

    /* "setools/policyrep/terule.pxi":646
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/terule.pxi":648
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_count);
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":624
 *         return self.table.nel
 * 
 *     def ruletype_count(self):             # <<<<<<<<<<<<<<
 *         """
 *         Determine the number of rules.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator.ruletype_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_count);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":650
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         self.node = self.table.htable[0]
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_7reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_14TERuleIterator_6reset, "Reset the iterator to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_14TERuleIterator_7reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14TERuleIterator_7reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_14TERuleIterator_6reset};
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_7reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator_6reset(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/terule.pxi":652
 *     def reset(self):
 *         """Reset the iterator to the start."""
 *         self.node = self.table.htable[0]             # <<<<<<<<<<<<<<
 * 
 *         # advance to first item
*/
  __pyx_v_self->node = (__pyx_v_self->table->htable[0]);

  /* "setools/policyrep/terule.pxi":655
 * 
 *         # advance to first item
 *         if self.node == NULL:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
*/
  __pyx_t_1 = (__pyx_v_self->node == NULL);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":656
 *         # advance to first item
 *         if self.node == NULL:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 * 
*/
    ((struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *)__pyx_v_self->__pyx_vtab)->_next_node(__pyx_v_self); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 656, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":655
 * 
 *         # advance to first item
 *         if self.node == NULL:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
*/
  }

  /* "setools/policyrep/terule.pxi":650
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         self.node = self.table.htable[0]
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14TERuleIterator_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14TERuleIterator_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_node_self_table_cannot_be_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14TERuleIterator_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14TERuleIterator_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_node_self_table_cannot_be_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":669
 *         object conditional_block
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.cond_av_list_t *head, conditional, cond_block):
 *         """ConditionalTERuleIterator iterator factory."""
*/

static PyObject *__pyx_f_7setools_9policyrep_25ConditionalTERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_av_list_t *__pyx_v_head, PyObject *__pyx_v_conditional, PyObject *__pyx_v_cond_block) {
  struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":672
 *     cdef factory(SELinuxPolicy policy, sepol.cond_av_list_t *head, conditional, cond_block):
 *         """ConditionalTERuleIterator iterator factory."""
 *         c = ConditionalTERuleIterator()             # <<<<<<<<<<<<<<
 *         c.policy = policy
 *         c.head = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 672, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":673
 *         """ConditionalTERuleIterator iterator factory."""
 *         c = ConditionalTERuleIterator()
 *         c.policy = policy             # <<<<<<<<<<<<<<
 *         c.head = head
 *         c.conditional = conditional
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_c->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_c->__pyx_base.policy);
  __pyx_v_c->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":674
 *         c = ConditionalTERuleIterator()
 *         c.policy = policy
 *         c.head = head             # <<<<<<<<<<<<<<
 *         c.conditional = conditional
 *         c.conditional_block = cond_block
*/
  __pyx_v_c->head = __pyx_v_head;

  /* "setools/policyrep/terule.pxi":675
 *         c.policy = policy
 *         c.head = head
 *         c.conditional = conditional             # <<<<<<<<<<<<<<
 *         c.conditional_block = cond_block
 *         c.reset()
*/
  __Pyx_INCREF(__pyx_v_conditional);
  __Pyx_GIVEREF(__pyx_v_conditional);
  __Pyx_GOTREF(__pyx_v_c->conditional);
  __Pyx_DECREF(__pyx_v_c->conditional);
  __pyx_v_c->conditional = __pyx_v_conditional;

  /* "setools/policyrep/terule.pxi":676
 *         c.head = head
 *         c.conditional = conditional
 *         c.conditional_block = cond_block             # <<<<<<<<<<<<<<
 *         c.reset()
 *         return c
*/
  __Pyx_INCREF(__pyx_v_cond_block);
  __Pyx_GIVEREF(__pyx_v_cond_block);
  __Pyx_GOTREF(__pyx_v_c->conditional_block);
  __Pyx_DECREF(__pyx_v_c->conditional_block);
  __pyx_v_c->conditional_block = __pyx_v_cond_block;

  /* "setools/policyrep/terule.pxi":677
 *         c.conditional = conditional
 *         c.conditional_block = cond_block
 *         c.reset()             # <<<<<<<<<<<<<<
 *         return c
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_c);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":678
 *         c.conditional_block = cond_block
 *         c.reset()
 *         return c             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_c);
  __pyx_r = ((PyObject *)__pyx_v_c);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":669
 *         object conditional_block
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.cond_av_list_t *head, conditional, cond_block):
 *         """ConditionalTERuleIterator iterator factory."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConditionalTERuleIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":680
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator___next__(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self) {
  avtab_key_t *__pyx_v_key;
  avtab_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_error_without_exception = 0; /* StopIteration */
  int __pyx_t_1;
  struct cond_av_list *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/terule.pxi":681
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  __pyx_t_1 = (__pyx_v_self->curr == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":682
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         key = &self.curr.node.key
*/
    __pyx_error_without_exception = 1;
    goto __pyx_L1_error;;

    /* "setools/policyrep/terule.pxi":681
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
*/
  }

  /* "setools/policyrep/terule.pxi":684
 *             raise StopIteration
 * 
 *         key = &self.curr.node.key             # <<<<<<<<<<<<<<
 *         datum = &self.curr.node.datum
 * 
*/
  __pyx_v_key = (&__pyx_v_self->curr->node->key);

  /* "setools/policyrep/terule.pxi":685
 * 
 *         key = &self.curr.node.key
 *         datum = &self.curr.node.datum             # <<<<<<<<<<<<<<
 * 
 *         self.curr = self.curr.next
*/
  __pyx_v_datum = (&__pyx_v_self->curr->node->datum);

  /* "setools/policyrep/terule.pxi":687
 *         datum = &self.curr.node.datum
 * 
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 * 
 *         if key.specified & sepol.AVRULE_AV:
*/
  __pyx_t_2 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_2;

  /* "setools/policyrep/terule.pxi":689
 *         self.curr = self.curr.next
 * 
 *         if key.specified & sepol.AVRULE_AV:             # <<<<<<<<<<<<<<
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_TYPE:
*/
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_AV) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":690
 * 
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)             # <<<<<<<<<<<<<<
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = __pyx_v_self->conditional;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = __pyx_v_self->conditional_block;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = ((PyObject *)__pyx_f_7setools_9policyrep_6AVRule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_key, __pyx_v_datum, __pyx_t_4, __pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 690, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":689
 *         self.curr = self.curr.next
 * 
 *         if key.specified & sepol.AVRULE_AV:             # <<<<<<<<<<<<<<
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_TYPE:
*/
  }

  /* "setools/policyrep/terule.pxi":691
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_TYPE:             # <<<<<<<<<<<<<<
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_XPERMS:
*/
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_TYPE) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":692
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)             # <<<<<<<<<<<<<<
 *         elif key.specified & sepol.AVRULE_XPERMS:
 *             return AVRuleXperm.factory(self.policy, key, datum, self.conditional, self.conditional_block)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = __pyx_v_self->conditional;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_4 = __pyx_v_self->conditional_block;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_6TERule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_6), __pyx_v_key, __pyx_v_datum, __pyx_t_5, __pyx_t_4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 692, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":691
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_TYPE:             # <<<<<<<<<<<<<<
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_XPERMS:
*/
  }

  /* "setools/policyrep/terule.pxi":693
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_XPERMS:             # <<<<<<<<<<<<<<
 *             return AVRuleXperm.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         else:
*/
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_XPERMS) != 0);
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":694
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_XPERMS:
 *             return AVRuleXperm.factory(self.policy, key, datum, self.conditional, self.conditional_block)             # <<<<<<<<<<<<<<
 *         else:
 *             raise LowLevelPolicyError(f"Unknown AV rule type 0x{key.specified:04x}")
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = __pyx_v_self->conditional;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = __pyx_v_self->conditional_block;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = ((PyObject *)__pyx_f_7setools_9policyrep_11AVRuleXperm_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_key, __pyx_v_datum, __pyx_t_4, __pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 694, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":693
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_XPERMS:             # <<<<<<<<<<<<<<
 *             return AVRuleXperm.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         else:
*/
  }

  /* "setools/policyrep/terule.pxi":696
 *             return AVRuleXperm.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         else:
 *             raise LowLevelPolicyError(f"Unknown AV rule type 0x{key.specified:04x}")             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  /*else*/ {
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_LowLevelPolicyError); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 696, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyUnicode_From_uint16_t(__pyx_v_key->specified, 4, '0', 'x'); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 696, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Unknown_AV_rule_type_0x, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 696, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
      __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(21, 696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(21, 696, __pyx_L1_error)
  }

  /* "setools/policyrep/terule.pxi":680
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  if (!__pyx_error_without_exception) {
    __Pyx_AddTraceback("setools.policyrep.ConditionalTERuleIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":698
 *             raise LowLevelPolicyError(f"Unknown AV rule type 0x{key.specified:04x}")
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_av_list_t *curr
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self) {
  cond_av_list_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  cond_av_list_t *__pyx_t_1;
  int __pyx_t_2;
  struct cond_av_list *__pyx_t_3;

  /* "setools/policyrep/terule.pxi":701
 *         cdef:
 *             sepol.cond_av_list_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/terule.pxi":703
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *             count += 1
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/terule.pxi":704
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *             count += 1
 *             curr = curr.next
*/
  while (1) {
    __pyx_t_2 = (__pyx_v_curr != NULL);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/terule.pxi":705
 *         curr = self.head
 *         while curr != NULL:
 *             count += 1             # <<<<<<<<<<<<<<
 *             curr = curr.next
 * 
*/
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/terule.pxi":706
 *         while curr != NULL:
 *             count += 1
 *             curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/terule.pxi":708
 *             curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def ruletype_count(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":698
 *             raise LowLevelPolicyError(f"Unknown AV rule type 0x{key.specified:04x}")
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_av_list_t *curr
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":710
 *         return count
 * 
 *     def ruletype_count(self):             # <<<<<<<<<<<<<<
 *         """
 *         Determine the number of rules.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_5ruletype_count(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_25ConditionalTERuleIterator_4ruletype_count, "\n        Determine the number of rules.\n\n        Return: collections.Counter object keyed by TERuletype.value\n        ");
static PyMethodDef __pyx_mdef_7setools_9policyrep_25ConditionalTERuleIterator_5ruletype_count = {"ruletype_count", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_5ruletype_count, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_25ConditionalTERuleIterator_4ruletype_count};
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_5ruletype_count(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ruletype_count (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("ruletype_count", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("ruletype_count", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_4ruletype_count(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_4ruletype_count(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self) {
  cond_av_list_t *__pyx_v_curr;
  PyObject *__pyx_v_count = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  cond_av_list_t *__pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  struct cond_av_list *__pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ruletype_count", 0);

  /* "setools/policyrep/terule.pxi":718
 *         cdef sepol.cond_av_list_t *curr
 * 
 *         count = collections.Counter()             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_collections); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 718, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Counter); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 718, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 718, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_count = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":720
 *         count = collections.Counter()
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *             count[curr.node.key.specified & ~sepol.AVTAB_ENABLED] += 1
*/
  __pyx_t_6 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_6;

  /* "setools/policyrep/terule.pxi":721
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *             count[curr.node.key.specified & ~sepol.AVTAB_ENABLED] += 1
 *             curr = curr.next
*/
  while (1) {
    __pyx_t_7 = (__pyx_v_curr != NULL);
    if (!__pyx_t_7) break;

    /* "setools/policyrep/terule.pxi":722
 *         curr = self.head
 *         while curr != NULL:
 *             count[curr.node.key.specified & ~sepol.AVTAB_ENABLED] += 1             # <<<<<<<<<<<<<<
 *             curr = curr.next
 * 
*/
    __pyx_t_8 = (__pyx_v_curr->node->key.specified & (~AVTAB_ENABLED));
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_count, __pyx_t_8, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely((__Pyx_SetItemInt(__pyx_v_count, __pyx_t_8, __pyx_t_4, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(21, 722, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "setools/policyrep/terule.pxi":723
 *         while curr != NULL:
 *             count[curr.node.key.specified & ~sepol.AVTAB_ENABLED] += 1
 *             curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_t_9 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_9;
  }

  /* "setools/policyrep/terule.pxi":725
 *             curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_count);
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":710
 *         return count
 * 
 *     def ruletype_count(self):             # <<<<<<<<<<<<<<
 *         """
 *         Determine the number of rules.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.ConditionalTERuleIterator.ruletype_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_count);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":727
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_7reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_25ConditionalTERuleIterator_6reset, "Reset the iterator back to the start.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_25ConditionalTERuleIterator_7reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_7reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_25ConditionalTERuleIterator_6reset};
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_7reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_6reset(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  cond_av_list_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/terule.pxi":729
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/terule.pxi":727
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_25ConditionalTERuleIterator_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConditionalTERuleIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_25ConditionalTERuleIterator_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.ConditionalTERuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConditionalTERuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":740
 *         TypeEbitmapIterator stypei
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating FileNameTERule iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":743
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating FileNameTERule iterators."""
 *         i = FileNameTERuleIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 743, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":744
 *         """Factory function for creating FileNameTERule iterators."""
 *         i = FileNameTERuleIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":745
 *         i = FileNameTERuleIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/terule.pxi":746
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":747
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def _next_stype(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":740
 *         TypeEbitmapIterator stypei
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating FileNameTERule iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":749
 *         return i
 * 
 *     def _next_stype(self):             # <<<<<<<<<<<<<<
 *         while True:
 *             if self.datum == NULL:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_1_next_stype(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_22FileNameTERuleIterator_1_next_stype = {"_next_stype", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_1_next_stype, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_1_next_stype(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_next_stype (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("_next_stype", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("_next_stype", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator__next_stype(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator__next_stype(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  struct filename_trans_datum *__pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_next_stype", 0);

  /* "setools/policyrep/terule.pxi":750
 * 
 *     def _next_stype(self):
 *         while True:             # <<<<<<<<<<<<<<
 *             if self.datum == NULL:
 *                 super().__next__()
*/
  while (1) {

    /* "setools/policyrep/terule.pxi":751
 *     def _next_stype(self):
 *         while True:
 *             if self.datum == NULL:             # <<<<<<<<<<<<<<
 *                 super().__next__()
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
*/
    __pyx_t_1 = (__pyx_v_self->datum == NULL);
    if (__pyx_t_1) {

      /* "setools/policyrep/terule.pxi":752
 *         while True:
 *             if self.datum == NULL:
 *                 super().__next__()             # <<<<<<<<<<<<<<
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
*/
      __pyx_t_5 = NULL;
      __pyx_t_6 = 1;
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_5, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator), ((PyObject *)__pyx_v_self)};
        __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 752, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_t_3 = __pyx_t_4;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
        __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 752, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":753
 *             if self.datum == NULL:
 *                 super().__next__()
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum             # <<<<<<<<<<<<<<
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 *             try:
*/
      __pyx_v_self->datum = ((filename_trans_datum_t *)__pyx_v_self->__pyx_base.curr->datum);

      /* "setools/policyrep/terule.pxi":754
 *                 super().__next__()
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)             # <<<<<<<<<<<<<<
 *             try:
 *                 return next(self.stypei)
*/
      __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_4 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), (&__pyx_v_self->datum->stypes)); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 754, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator))))) __PYX_ERR(21, 754, __pyx_L1_error)
      __Pyx_GIVEREF(__pyx_t_4);
      __Pyx_GOTREF((PyObject *)__pyx_v_self->stypei);
      __Pyx_DECREF((PyObject *)__pyx_v_self->stypei);
      __pyx_v_self->stypei = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "setools/policyrep/terule.pxi":751
 *     def _next_stype(self):
 *         while True:
 *             if self.datum == NULL:             # <<<<<<<<<<<<<<
 *                 super().__next__()
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
*/
    }

    /* "setools/policyrep/terule.pxi":755
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 *             try:             # <<<<<<<<<<<<<<
 *                 return next(self.stypei)
 *             except StopIteration:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_9);
      /*try:*/ {

        /* "setools/policyrep/terule.pxi":756
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 *             try:
 *                 return next(self.stypei)             # <<<<<<<<<<<<<<
 *             except StopIteration:
 *                 pass
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_4 = ((PyObject *)__pyx_v_self->stypei);
        __Pyx_INCREF(__pyx_t_4);
        __pyx_t_2 = __Pyx_PyIter_Next(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 756, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        goto __pyx_L10_try_return;

        /* "setools/policyrep/terule.pxi":755
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 *             try:             # <<<<<<<<<<<<<<
 *                 return next(self.stypei)
 *             except StopIteration:
*/
      }
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "setools/policyrep/terule.pxi":757
 *             try:
 *                 return next(self.stypei)
 *             except StopIteration:             # <<<<<<<<<<<<<<
 *                 pass
 *             self.datum = self.datum.next
*/
      __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_StopIteration))));
      if (__pyx_t_10) {
        __Pyx_ErrRestore(0,0,0);
        goto __pyx_L7_exception_handled;
      }
      goto __pyx_L8_except_error;

      /* "setools/policyrep/terule.pxi":755
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 *             try:             # <<<<<<<<<<<<<<
 *                 return next(self.stypei)
 *             except StopIteration:
*/
      __pyx_L8_except_error:;
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      goto __pyx_L1_error;
      __pyx_L10_try_return:;
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      goto __pyx_L0;
      __pyx_L7_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    }

    /* "setools/policyrep/terule.pxi":759
 *             except StopIteration:
 *                 pass
 *             self.datum = self.datum.next             # <<<<<<<<<<<<<<
 *             if self.datum != NULL:
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
*/
    __pyx_t_11 = __pyx_v_self->datum->next;
    __pyx_v_self->datum = __pyx_t_11;

    /* "setools/policyrep/terule.pxi":760
 *                 pass
 *             self.datum = self.datum.next
 *             if self.datum != NULL:             # <<<<<<<<<<<<<<
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 * 
*/
    __pyx_t_1 = (__pyx_v_self->datum != NULL);
    if (__pyx_t_1) {

      /* "setools/policyrep/terule.pxi":761
 *             self.datum = self.datum.next
 *             if self.datum != NULL:
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
      __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_4 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), (&__pyx_v_self->datum->stypes)); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 761, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator))))) __PYX_ERR(21, 761, __pyx_L1_error)
      __Pyx_GIVEREF(__pyx_t_4);
      __Pyx_GOTREF((PyObject *)__pyx_v_self->stypei);
      __Pyx_DECREF((PyObject *)__pyx_v_self->stypei);
      __pyx_v_self->stypei = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "setools/policyrep/terule.pxi":760
 *                 pass
 *             self.datum = self.datum.next
 *             if self.datum != NULL:             # <<<<<<<<<<<<<<
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 * 
*/
    }
  }

  /* "setools/policyrep/terule.pxi":749
 *         return i
 * 
 *     def _next_stype(self):             # <<<<<<<<<<<<<<
 *         while True:
 *             if self.datum == NULL:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator._next_stype", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":763
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         stype = self._next_stype()
 *         return FileNameTERule.factory(self.policy,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_2__next__(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_2__next__(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_v_stype = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/terule.pxi":764
 * 
 *     def __next__(self):
 *         stype = self._next_stype()             # <<<<<<<<<<<<<<
 *         return FileNameTERule.factory(self.policy,
 *                                       <sepol.filename_trans_key_t *>self.curr.key,
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next_stype, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 764, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_stype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":765
 *     def __next__(self):
 *         stype = self._next_stype()
 *         return FileNameTERule.factory(self.policy,             # <<<<<<<<<<<<<<
 *                                       <sepol.filename_trans_key_t *>self.curr.key,
 *                                       stype, self.datum.otype)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/terule.pxi":767
 *         return FileNameTERule.factory(self.policy,
 *                                       <sepol.filename_trans_key_t *>self.curr.key,
 *                                       stype, self.datum.otype)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  if (!(likely(((__pyx_v_stype) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_stype, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type))))) __PYX_ERR(21, 767, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":765
 *     def __next__(self):
 *         stype = self._next_stype()
 *         return FileNameTERule.factory(self.policy,             # <<<<<<<<<<<<<<
 *                                       <sepol.filename_trans_key_t *>self.curr.key,
 *                                       stype, self.datum.otype)
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_14FileNameTERule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((filename_trans_key_t *)__pyx_v_self->__pyx_base.curr->key), ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_stype), __pyx_v_self->datum->otype)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":763
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         stype = self._next_stype()
 *         return FileNameTERule.factory(self.policy,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stype);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":769
 *                                       stype, self.datum.otype)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_5__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_5__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_4__len__(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_22FileNameTERuleIterator_7__len___2generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":770
 * 
 *     def __len__(self):
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_7__len___genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_31_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 770, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_22FileNameTERuleIterator_7__len___2generator32, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_len___locals_genexpr, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(21, 770, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.__len__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_22FileNameTERuleIterator_7__len___2generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(21, 770, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(21, 770, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 770, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 770, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(21, 770, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 770, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(21, 770, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1);
    __pyx_r = __pyx_mstate_global->__pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 770, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":769
 *                                       stype, self.datum.otype)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
*/

static Py_ssize_t __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_4__len__(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_gb_7setools_9policyrep_22FileNameTERuleIterator_7__len___2generator32 = 0;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/terule.pxi":770
 * 
 *     def __len__(self):
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = __pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_self->__pyx_base.table); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_7__len___genexpr(NULL, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_sum, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(21, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":769
 *                                       stype, self.datum.otype)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_22FileNameTERuleIterator_7__len___2generator32);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":772
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 *         self.datum = NULL
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_7reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_22FileNameTERuleIterator_7reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_7reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_7reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_6reset(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/terule.pxi":773
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 *         self.datum = NULL
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 773, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 773, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":774
 *     def reset(self):
 *         super().reset()
 *         self.datum = NULL             # <<<<<<<<<<<<<<
*/
  __pyx_v_self->datum = NULL;

  /* "setools/policyrep/terule.pxi":772
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 *         self.datum = NULL
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_22FileNameTERuleIterator_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_datum_self_node_s, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_22FileNameTERuleIterator_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_datum_self_node_s, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":21
 * # Type or attribute factory function
 * #
 * cdef inline BaseType type_or_attr_factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):             # <<<<<<<<<<<<<<
 *     """Factory function for creating type or attribute objects."""
 *     if symbol.flavor == sepol.TYPE_ATTRIB:
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_f_7setools_9policyrep_type_or_attr_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type_or_attr_factory", 0);

  /* "setools/policyrep/typeattr.pxi":23
 * cdef inline BaseType type_or_attr_factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):
 *     """Factory function for creating type or attribute objects."""
 *     if symbol.flavor == sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *         return TypeAttribute.factory(policy, symbol)
 *     else:
*/
  __pyx_t_1 = (__pyx_v_symbol->flavor == TYPE_ATTRIB);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":24
 *     """Factory function for creating type or attribute objects."""
 *     if symbol.flavor == sepol.TYPE_ATTRIB:
 *         return TypeAttribute.factory(policy, symbol)             # <<<<<<<<<<<<<<
 *     else:
 *         return Type.factory(policy, symbol)
*/
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_13TypeAttribute_factory(__pyx_v_policy, __pyx_v_symbol)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = ((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/typeattr.pxi":23
 * cdef inline BaseType type_or_attr_factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):
 *     """Factory function for creating type or attribute objects."""
 *     if symbol.flavor == sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *         return TypeAttribute.factory(policy, symbol)
 *     else:
*/
  }

  /* "setools/policyrep/typeattr.pxi":26
 *         return TypeAttribute.factory(policy, symbol)
 *     else:
 *         return Type.factory(policy, symbol)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(__pyx_v_policy, __pyx_v_symbol)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 26, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = ((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/typeattr.pxi":21
 * # Type or attribute factory function
 * #
 * cdef inline BaseType type_or_attr_factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):             # <<<<<<<<<<<<<<
 *     """Factory function for creating type or attribute objects."""
 *     if symbol.flavor == sepol.TYPE_ATTRIB:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.type_or_attr_factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":36
 *     """Type/attribute base class."""
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this attribute into its member types."""
 *         raise NotImplementedError
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_1expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_8BaseType_expand, "Generator that expands this attribute into its member types.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_8BaseType_1expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8BaseType_1expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8BaseType_expand};
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_1expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8BaseType_expand(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_expand(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);

  /* "setools/policyrep/typeattr.pxi":38
 *     def expand(self):
 *         """Generator that expands this attribute into its member types."""
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def attributes(self):
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_NotImplementedError))), 0, 0, 0);
  __PYX_ERR(22, 38, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":36
 *     """Type/attribute base class."""
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this attribute into its member types."""
 *         raise NotImplementedError
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.BaseType.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":40
 *         raise NotImplementedError
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         raise NotImplementedError
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_3attributes(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_8BaseType_2attributes, "Generator that yields all attributes for this type.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_8BaseType_3attributes = {"attributes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8BaseType_3attributes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8BaseType_2attributes};
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_3attributes(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("attributes (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("attributes", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("attributes", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8BaseType_2attributes(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_2attributes(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("attributes", 0);

  /* "setools/policyrep/typeattr.pxi":42
 *     def attributes(self):
 *         """Generator that yields all attributes for this type."""
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def aliases(self):
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_NotImplementedError))), 0, 0, 0);
  __PYX_ERR(22, 42, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":40
 *         raise NotImplementedError
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         raise NotImplementedError
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.BaseType.attributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":44
 *         raise NotImplementedError
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         raise NotImplementedError
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_5aliases(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_8BaseType_4aliases, "Generator that yields all aliases for this type.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_8BaseType_5aliases = {"aliases", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8BaseType_5aliases, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8BaseType_4aliases};
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_5aliases(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("aliases (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("aliases", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("aliases", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8BaseType_4aliases(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_4aliases(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("aliases", 0);

  /* "setools/policyrep/typeattr.pxi":46
 *     def aliases(self):
 *         """Generator that yields all aliases for this type."""
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_NotImplementedError))), 0, 0, 0);
  __PYX_ERR(22, 46, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":44
 *         raise NotImplementedError
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         raise NotImplementedError
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.BaseType.aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8BaseType_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8BaseType_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8BaseType_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->__pyx_base.name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_BaseType, (type(self), 0x00b0124, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseType, (type(self), 0x00b0124, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_BaseType, (type(self), 0x00b0124, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_BaseType, (type(self), 0x00b0124, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseType); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_721188);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_721188);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_721188) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseType, (type(self), 0x00b0124, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_BaseType, (type(self), 0x00b0124, None), state
 *     else:
 *         return __pyx_unpickle_BaseType, (type(self), 0x00b0124, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseType__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseType); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_721188);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_721188);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_721188) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.BaseType.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseType, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseType__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8BaseType_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8BaseType_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.BaseType.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_8BaseType_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_BaseType, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseType__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseType__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseType, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseType__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.BaseType.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":61
 *         uint32_t value
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Type factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):
 *         """Factory function for creating Type objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Type *__pyx_f_7setools_9policyrep_4Type_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_t = 0;
  struct __pyx_obj_7setools_9policyrep_Type *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  uint32_t __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":65
 *         """Factory function for creating Type objects."""
 *         cdef Type t
 *         if symbol.flavor != sepol.TYPE_TYPE:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"{policy.type_value_to_name(symbol.s.value - 1)} is not a type")
 * 
*/
  __pyx_t_1 = (__pyx_v_symbol->flavor != TYPE_TYPE);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/typeattr.pxi":66
 *         cdef Type t
 *         if symbol.flavor != sepol.TYPE_TYPE:
 *             raise ValueError(f"{policy.type_value_to_name(symbol.s.value - 1)} is not a type")             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 66, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 66, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_is_not_a_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 66, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 66, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(22, 66, __pyx_L1_error)

    /* "setools/policyrep/typeattr.pxi":65
 *         """Factory function for creating Type objects."""
 *         cdef Type t
 *         if symbol.flavor != sepol.TYPE_TYPE:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"{policy.type_value_to_name(symbol.s.value - 1)} is not a type")
 * 
*/
  }

  /* "setools/policyrep/typeattr.pxi":68
 *             raise ValueError(f"{policy.type_value_to_name(symbol.s.value - 1)} is not a type")
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _type_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    /*try:*/ {

      /* "setools/policyrep/typeattr.pxi":69
 * 
 *         try:
 *             return _type_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             t = Type.__new__(Type)
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__type_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 69, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 69, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type))))) __PYX_ERR(22, 69, __pyx_L4_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_4);
      __pyx_t_4 = 0;
      goto __pyx_L8_try_return;

      /* "setools/policyrep/typeattr.pxi":68
 *             raise ValueError(f"{policy.type_value_to_name(symbol.s.value - 1)} is not a type")
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _type_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/typeattr.pxi":70
 *         try:
 *             return _type_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             t = Type.__new__(Type)
 *             _type_cache[policy][<uintptr_t>symbol] = t
*/
    __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_10) {
      __Pyx_AddTraceback("setools.policyrep.Type.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(22, 70, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_3);

      /* "setools/policyrep/typeattr.pxi":71
 *             return _type_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             t = Type.__new__(Type)             # <<<<<<<<<<<<<<
 *             _type_cache[policy][<uintptr_t>symbol] = t
 *             t.policy = policy
*/
      __pyx_t_5 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Type(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 71, __pyx_L6_except_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_5);
      __pyx_v_t = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":72
 *         except KeyError:
 *             t = Type.__new__(Type)
 *             _type_cache[policy][<uintptr_t>symbol] = t             # <<<<<<<<<<<<<<
 *             t.policy = policy
 *             t.key = <uintptr_t>symbol
*/
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__type_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 72, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely((__Pyx_SetItemInt(__pyx_t_5, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_t), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(22, 72, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":73
 *             t = Type.__new__(Type)
 *             _type_cache[policy][<uintptr_t>symbol] = t
 *             t.policy = policy             # <<<<<<<<<<<<<<
 *             t.key = <uintptr_t>symbol
 *             t.value = symbol.s.value
*/
      __Pyx_INCREF((PyObject *)__pyx_v_policy);
      __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
      __Pyx_GOTREF((PyObject *)__pyx_v_t->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_v_t->__pyx_base.__pyx_base.__pyx_base.policy);
      __pyx_v_t->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/typeattr.pxi":74
 *             _type_cache[policy][<uintptr_t>symbol] = t
 *             t.policy = policy
 *             t.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             t.value = symbol.s.value
 *             t.name = policy.type_value_to_name(symbol.s.value - 1)
*/
      __pyx_v_t->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/typeattr.pxi":75
 *             t.policy = policy
 *             t.key = <uintptr_t>symbol
 *             t.value = symbol.s.value             # <<<<<<<<<<<<<<
 *             t.name = policy.type_value_to_name(symbol.s.value - 1)
 *             t.ispermissive = <bint>symbol.flags & sepol.TYPE_FLAGS_PERMISSIVE
*/
      __pyx_t_11 = __pyx_v_symbol->s.value;
      __pyx_v_t->value = __pyx_t_11;

      /* "setools/policyrep/typeattr.pxi":76
 *             t.key = <uintptr_t>symbol
 *             t.value = symbol.s.value
 *             t.name = policy.type_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 *             t.ispermissive = <bint>symbol.flags & sepol.TYPE_FLAGS_PERMISSIVE
 *             t._aliases = policy.type_alias_map[symbol.s.value]
*/
      __pyx_t_5 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 76, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_v_t->__pyx_base.__pyx_base.name);
      __Pyx_DECREF(__pyx_v_t->__pyx_base.__pyx_base.name);
      __pyx_v_t->__pyx_base.__pyx_base.name = ((PyObject*)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":77
 *             t.value = symbol.s.value
 *             t.name = policy.type_value_to_name(symbol.s.value - 1)
 *             t.ispermissive = <bint>symbol.flags & sepol.TYPE_FLAGS_PERMISSIVE             # <<<<<<<<<<<<<<
 *             t._aliases = policy.type_alias_map[symbol.s.value]
 *             return t
*/
      __pyx_t_5 = __Pyx_PyBool_FromLong(((__pyx_v_symbol->flags != 0) & TYPE_FLAGS_PERMISSIVE)); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 77, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_v_t->ispermissive);
      __Pyx_DECREF(__pyx_v_t->ispermissive);
      __pyx_v_t->ispermissive = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":78
 *             t.name = policy.type_value_to_name(symbol.s.value - 1)
 *             t.ispermissive = <bint>symbol.flags & sepol.TYPE_FLAGS_PERMISSIVE
 *             t._aliases = policy.type_alias_map[symbol.s.value]             # <<<<<<<<<<<<<<
 *             return t
 * 
*/
      if (unlikely(__pyx_v_policy->type_alias_map == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(22, 78, __pyx_L6_except_error)
      }
      __pyx_t_5 = __Pyx_PyLong_From_uint32_t(__pyx_v_symbol->s.value); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 78, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_policy->type_alias_map, __pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(22, 78, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_12))) __PYX_ERR(22, 78, __pyx_L6_except_error)
      __Pyx_GIVEREF(__pyx_t_12);
      __Pyx_GOTREF(__pyx_v_t->_aliases);
      __Pyx_DECREF(__pyx_v_t->_aliases);
      __pyx_v_t->_aliases = ((PyObject*)__pyx_t_12);
      __pyx_t_12 = 0;

      /* "setools/policyrep/typeattr.pxi":79
 *             t.ispermissive = <bint>symbol.flags & sepol.TYPE_FLAGS_PERMISSIVE
 *             t._aliases = policy.type_alias_map[symbol.s.value]
 *             return t             # <<<<<<<<<<<<<<
 * 
 *     cdef inline void _load_attributes(self):
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __Pyx_INCREF((PyObject *)__pyx_v_t);
      __pyx_r = __pyx_v_t;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;

    /* "setools/policyrep/typeattr.pxi":68
 *             raise ValueError(f"{policy.type_value_to_name(symbol.s.value - 1)} is not a type")
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _type_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    goto __pyx_L0;
  }

  /* "setools/policyrep/typeattr.pxi":61
 *         uint32_t value
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Type factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):
 *         """Factory function for creating Type objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("setools.policyrep.Type.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_t);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":81
 *             return t
 * 
 *     cdef inline void _load_attributes(self):             # <<<<<<<<<<<<<<
 *         """Helper method to load attributes."""
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
*/

static CYTHON_INLINE void __pyx_f_7setools_9policyrep_4Type__load_attributes(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  type_datum_t *__pyx_v_symbol;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_attributes", 0);

  /* "setools/policyrep/typeattr.pxi":83
 *     cdef inline void _load_attributes(self):
 *         """Helper method to load attributes."""
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key             # <<<<<<<<<<<<<<
 *         if self._attrs is None:
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
*/
  __pyx_v_symbol = ((type_datum_t *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key);

  /* "setools/policyrep/typeattr.pxi":84
 *         """Helper method to load attributes."""
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._attrs is None:             # <<<<<<<<<<<<<<
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
*/
  __pyx_t_1 = (__pyx_v_self->_attrs == ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":85
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._attrs is None:
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
*/
    __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = __pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PySequence_ListKeepNew(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_self->_attrs);
    __Pyx_DECREF(__pyx_v_self->_attrs);
    __pyx_v_self->_attrs = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":84
 *         """Helper method to load attributes."""
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._attrs is None:             # <<<<<<<<<<<<<<
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
*/
  }

  /* "setools/policyrep/typeattr.pxi":81
 *             return t
 * 
 *     cdef inline void _load_attributes(self):             # <<<<<<<<<<<<<<
 *         """Helper method to load attributes."""
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Type._load_attributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}
static PyObject *__pyx_gb_7setools_9policyrep_4Type_2generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/typeattr.pxi":87
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this into its member types."""
 *         yield self
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_1expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_4Type_expand, "Generator that expands this into its member types.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_4Type_1expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_1expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_4Type_expand};
static PyObject *__pyx_pw_7setools_9policyrep_4Type_1expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_expand(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4Type_expand(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_32_expand(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(22, 87, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_4Type_2generator11, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_expand, __pyx_mstate_global->__pyx_n_u_Type_expand, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(22, 87, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Type.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_4Type_2generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(22, 87, __pyx_L1_error)
  }

  /* "setools/policyrep/typeattr.pxi":89
 *     def expand(self):
 *         """Generator that expands this into its member types."""
 *         yield self             # <<<<<<<<<<<<<<
 * 
 *     def attributes(self):
*/
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  /* return from generator, yielding value */
  __pyx_generator->resume_label = 1;
  return __pyx_r;
  __pyx_L4_resume_from_yield:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(22, 89, __pyx_L1_error)
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/typeattr.pxi":87
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this into its member types."""
 *         yield self
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":91
 *         yield self
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         self._load_attributes()
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_4attributes(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_4Type_3attributes, "Generator that yields all attributes for this type.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_4Type_4attributes = {"attributes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_4attributes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_4Type_3attributes};
static PyObject *__pyx_pw_7setools_9policyrep_4Type_4attributes(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("attributes (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("attributes", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("attributes", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_3attributes(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4Type_3attributes(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("attributes", 0);

  /* "setools/policyrep/typeattr.pxi":93
 *     def attributes(self):
 *         """Generator that yields all attributes for this type."""
 *         self._load_attributes()             # <<<<<<<<<<<<<<
 *         return iter(self._attrs)
 * 
*/
  __pyx_f_7setools_9policyrep_4Type__load_attributes(__pyx_v_self); if (unlikely(PyErr_Occurred())) __PYX_ERR(22, 93, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":94
 *         """Generator that yields all attributes for this type."""
 *         self._load_attributes()
 *         return iter(self._attrs)             # <<<<<<<<<<<<<<
 * 
 *     def aliases(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_attrs;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":91
 *         yield self
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         self._load_attributes()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Type.attributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":96
 *         return iter(self._attrs)
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         return iter(self._aliases)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_6aliases(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_4Type_5aliases, "Generator that yields all aliases for this type.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_4Type_6aliases = {"aliases", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_6aliases, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_4Type_5aliases};
static PyObject *__pyx_pw_7setools_9policyrep_4Type_6aliases(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("aliases (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("aliases", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("aliases", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_5aliases(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4Type_5aliases(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("aliases", 0);

  /* "setools/policyrep/typeattr.pxi":98
 *     def aliases(self):
 *         """Generator that yields all aliases for this type."""
 *         return iter(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":96
 *         return iter(self._attrs)
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         return iter(self._aliases)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Type.aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":100
 *         return iter(self._aliases)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_4Type_8statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_4Type_8statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_7statement(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_4Type_9statement_2generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/typeattr.pxi":114
 *             stmt += f" alias {self._aliases[0]}"
 *         if self._attrs:
 *             stmt += f", {', '.join(a.name for a in sorted(self._attrs))}"             # <<<<<<<<<<<<<<
 *         stmt += ";"
 *         return stmt
*/

static PyObject *__pyx_pf_7setools_9policyrep_4Type_9statement_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_33_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(22, 114, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_4Type_9statement_2generator33, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_statement_locals_genexpr, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(22, 114, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Type.statement.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_4Type_9statement_2generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(22, 114, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(22, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(22, 114, __pyx_L1_error) }
  __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely((PyList_Sort(__pyx_t_2) < 0))) __PYX_ERR(22, 114, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(22, 114, __pyx_L1_error)
      #endif
      if (__pyx_t_3 >= __pyx_temp) break;
    }
    __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference);
    ++__pyx_t_3;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_a);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_a, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_a, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_2))) __PYX_ERR(22, 114, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":100
 *         return iter(self._aliases)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count
*/

static PyObject *__pyx_pf_7setools_9policyrep_4Type_7statement(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  size_t __pyx_v_count;
  PyObject *__pyx_v_stmt = 0;
  PyObject *__pyx_gb_7setools_9policyrep_4Type_9statement_2generator33 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/typeattr.pxi":105
 *             str stmt
 * 
 *         self._load_attributes()             # <<<<<<<<<<<<<<
 *         count = len(self._aliases)
 * 
*/
  __pyx_f_7setools_9policyrep_4Type__load_attributes(__pyx_v_self); if (unlikely(PyErr_Occurred())) __PYX_ERR(22, 105, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":106
 * 
 *         self._load_attributes()
 *         count = len(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *         stmt = f"type {self.name}"
*/
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(22, 106, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(22, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_count = __pyx_t_2;

  /* "setools/policyrep/typeattr.pxi":108
 *         count = len(self._aliases)
 * 
 *         stmt = f"type {self.name}"             # <<<<<<<<<<<<<<
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(sorted(self._aliases))} }}"
*/
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.__pyx_base.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_type, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stmt = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/typeattr.pxi":109
 * 
 *         stmt = f"type {self.name}"
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {{ {' '.join(sorted(self._aliases))} }}"
 *         elif count == 1:
*/
  __pyx_t_4 = (__pyx_v_count > 1);
  if (__pyx_t_4) {

    /* "setools/policyrep/typeattr.pxi":110
 *         stmt = f"type {self.name}"
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(sorted(self._aliases))} }}"             # <<<<<<<<<<<<<<
 *         elif count == 1:
 *             stmt += f" alias {self._aliases[0]}"
*/
    __pyx_t_3 = __pyx_v_self->_aliases;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely((PyList_Sort(__pyx_t_1) < 0))) __PYX_ERR(22, 110, __pyx_L1_error)
    __pyx_t_3 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_alias;
    __pyx_t_5[1] = __pyx_t_3;
    __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u__7;
    __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, 9 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 2, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "setools/policyrep/typeattr.pxi":109
 * 
 *         stmt = f"type {self.name}"
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {{ {' '.join(sorted(self._aliases))} }}"
 *         elif count == 1:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/typeattr.pxi":111
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(sorted(self._aliases))} }}"
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {self._aliases[0]}"
 *         if self._attrs:
*/
  __pyx_t_4 = (__pyx_v_count == 1);
  if (__pyx_t_4) {

    /* "setools/policyrep/typeattr.pxi":112
 *             stmt += f" alias {{ {' '.join(sorted(self._aliases))} }}"
 *         elif count == 1:
 *             stmt += f" alias {self._aliases[0]}"             # <<<<<<<<<<<<<<
 *         if self._attrs:
 *             stmt += f", {', '.join(a.name for a in sorted(self._attrs))}"
*/
    if (unlikely(__pyx_v_self->_aliases == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(22, 112, __pyx_L1_error)
    }
    __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->_aliases, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_t_3, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_alias_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/typeattr.pxi":111
 *         if count > 1:
 *             stmt += f" alias {{ {' '.join(sorted(self._aliases))} }}"
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += f" alias {self._aliases[0]}"
 *         if self._attrs:
*/
  }
  __pyx_L3:;

  /* "setools/policyrep/typeattr.pxi":113
 *         elif count == 1:
 *             stmt += f" alias {self._aliases[0]}"
 *         if self._attrs:             # <<<<<<<<<<<<<<
 *             stmt += f", {', '.join(a.name for a in sorted(self._attrs))}"
 *         stmt += ";"
*/
  if (__pyx_v_self->_attrs == Py_None) __pyx_t_4 = 0;
  else
  {
    Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_self->_attrs);
    if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(22, 113, __pyx_L1_error)
    __pyx_t_4 = (__pyx_temp != 0);
  }

  if (__pyx_t_4) {

    /* "setools/policyrep/typeattr.pxi":114
 *             stmt += f" alias {self._aliases[0]}"
 *         if self._attrs:
 *             stmt += f", {', '.join(a.name for a in sorted(self._attrs))}"             # <<<<<<<<<<<<<<
 *         stmt += ";"
 *         return stmt
*/
    __pyx_t_1 = __pyx_pf_7setools_9policyrep_4Type_9statement_genexpr(NULL, __pyx_v_self->_attrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_Generator_GetInlinedResult(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__19, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u__19, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/typeattr.pxi":113
 *         elif count == 1:
 *             stmt += f" alias {self._aliases[0]}"
 *         if self._attrs:             # <<<<<<<<<<<<<<
 *             stmt += f", {', '.join(a.name for a in sorted(self._attrs))}"
 *         stmt += ";"
*/
  }

  /* "setools/policyrep/typeattr.pxi":115
 *         if self._attrs:
 *             stmt += f", {', '.join(a.name for a in sorted(self._attrs))}"
 *         stmt += ";"             # <<<<<<<<<<<<<<
 *         return stmt
 * 
*/
  __pyx_t_1 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_mstate_global->__pyx_kp_u__2); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":116
 *             stmt += f", {', '.join(a.name for a in sorted(self._attrs))}"
 *         stmt += ";"
 *         return stmt             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stmt);
  __pyx_r = __pyx_v_stmt;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":100
 *         return iter(self._aliases)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Type.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_4Type_9statement_2generator33);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":54
 * 
 *     cdef:
 *         readonly object ispermissive             # <<<<<<<<<<<<<<
 *         list _aliases
 *         list _attrs
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_12ispermissive_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4Type_12ispermissive_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_12ispermissive___get__(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4Type_12ispermissive___get__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ispermissive);
  __pyx_r = __pyx_v_self->ispermissive;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_4Type_10__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_4Type_10__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4Type_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._aliases, self._attrs, self.ispermissive, self.key, self.name, self.policy, self.value)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_From_uint32_t(__pyx_v_self->value); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->_aliases);
  __Pyx_GIVEREF(__pyx_v_self->_aliases);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->_aliases) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_attrs);
  __Pyx_GIVEREF(__pyx_v_self->_attrs);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->_attrs) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->ispermissive);
  __Pyx_GIVEREF(__pyx_v_self->ispermissive);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->ispermissive) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->__pyx_base.__pyx_base.name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 5, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_t_2) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._aliases, self._attrs, self.ispermissive, self.key, self.name, self.policy, self.value)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self._aliases, self._attrs, self.ispermissive, self.key, self.name, self.policy, self.value)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._aliases is not None or self._attrs is not None or self.ispermissive is not None or self.name is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._aliases, self._attrs, self.ispermissive, self.key, self.name, self.policy, self.value)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._aliases is not None or self._attrs is not None or self.ispermissive is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Type, (type(self), 0xf433841, None), state
*/
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->_aliases != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->_attrs != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->ispermissive != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.__pyx_base.name != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self._attrs is not None or self.ispermissive is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Type, (type(self), 0xf433841, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._aliases is not None or self._attrs is not None or self.ispermissive is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Type, (type(self), 0xf433841, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Type, (type(self), 0xf433841, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_256063553);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_256063553);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_256063553) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self._attrs is not None or self.ispermissive is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Type, (type(self), 0xf433841, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Type, (type(self), 0xf433841, None), state
 *     else:
 *         return __pyx_unpickle_Type, (type(self), 0xf433841, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Type__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Type); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_256063553);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_256063553);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_256063553) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Type.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Type, (type(self), 0xf433841, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Type__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_4Type_12__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_4Type_12__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Type.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4Type_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Type, (type(self), 0xf433841, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Type__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Type__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Type, (type(self), 0xf433841, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Type__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Type.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":125
 *     cdef list _types
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline TypeAttribute factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):
 *         """Factory function for creating TypeAttribute objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_f_7setools_9policyrep_13TypeAttribute_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_a = 0;
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":129
 *         """Factory function for creating TypeAttribute objects."""
 *         cdef TypeAttribute a
 *         if symbol.flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *             raise ValueError(
 *                 f"{policy.type_value_to_name(symbol.s.value - 1)} is not an attribute")
*/
  __pyx_t_1 = (__pyx_v_symbol->flavor != TYPE_ATTRIB);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/typeattr.pxi":130
 *         cdef TypeAttribute a
 *         if symbol.flavor != sepol.TYPE_ATTRIB:
 *             raise ValueError(             # <<<<<<<<<<<<<<
 *                 f"{policy.type_value_to_name(symbol.s.value - 1)} is not an attribute")
 * 
*/
    __pyx_t_3 = NULL;

    /* "setools/policyrep/typeattr.pxi":131
 *         if symbol.flavor != sepol.TYPE_ATTRIB:
 *             raise ValueError(
 *                 f"{policy.type_value_to_name(symbol.s.value - 1)} is not an attribute")             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
    __pyx_t_4 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_is_not_an_attribute); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(22, 130, __pyx_L1_error)

    /* "setools/policyrep/typeattr.pxi":129
 *         """Factory function for creating TypeAttribute objects."""
 *         cdef TypeAttribute a
 *         if symbol.flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *             raise ValueError(
 *                 f"{policy.type_value_to_name(symbol.s.value - 1)} is not an attribute")
*/
  }

  /* "setools/policyrep/typeattr.pxi":133
 *                 f"{policy.type_value_to_name(symbol.s.value - 1)} is not an attribute")
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _typeattr_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    /*try:*/ {

      /* "setools/policyrep/typeattr.pxi":134
 * 
 *         try:
 *             return _typeattr_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             a = TypeAttribute.__new__(TypeAttribute)
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__typeattr_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 134, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 134, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttribute))))) __PYX_ERR(22, 134, __pyx_L4_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_t_4);
      __pyx_t_4 = 0;
      goto __pyx_L8_try_return;

      /* "setools/policyrep/typeattr.pxi":133
 *                 f"{policy.type_value_to_name(symbol.s.value - 1)} is not an attribute")
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _typeattr_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/typeattr.pxi":135
 *         try:
 *             return _typeattr_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             a = TypeAttribute.__new__(TypeAttribute)
 *             _typeattr_cache[policy][<uintptr_t>symbol] = a
*/
    __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_10) {
      __Pyx_AddTraceback("setools.policyrep.TypeAttribute.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(22, 135, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_3);

      /* "setools/policyrep/typeattr.pxi":136
 *             return _typeattr_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             a = TypeAttribute.__new__(TypeAttribute)             # <<<<<<<<<<<<<<
 *             _typeattr_cache[policy][<uintptr_t>symbol] = a
 *             a.policy = policy
*/
      __pyx_t_5 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_TypeAttribute(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttribute), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 136, __pyx_L6_except_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_5);
      __pyx_v_a = ((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":137
 *         except KeyError:
 *             a = TypeAttribute.__new__(TypeAttribute)
 *             _typeattr_cache[policy][<uintptr_t>symbol] = a             # <<<<<<<<<<<<<<
 *             a.policy = policy
 *             a.key = <uintptr_t>symbol
*/
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__typeattr_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 137, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely((__Pyx_SetItemInt(__pyx_t_5, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_a), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(22, 137, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":138
 *             a = TypeAttribute.__new__(TypeAttribute)
 *             _typeattr_cache[policy][<uintptr_t>symbol] = a
 *             a.policy = policy             # <<<<<<<<<<<<<<
 *             a.key = <uintptr_t>symbol
 *             a.name = policy.type_value_to_name(symbol.s.value - 1)
*/
      __Pyx_INCREF((PyObject *)__pyx_v_policy);
      __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
      __Pyx_GOTREF((PyObject *)__pyx_v_a->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_v_a->__pyx_base.__pyx_base.__pyx_base.policy);
      __pyx_v_a->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/typeattr.pxi":139
 *             _typeattr_cache[policy][<uintptr_t>symbol] = a
 *             a.policy = policy
 *             a.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             a.name = policy.type_value_to_name(symbol.s.value - 1)
 *             return a
*/
      __pyx_v_a->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/typeattr.pxi":140
 *             a.policy = policy
 *             a.key = <uintptr_t>symbol
 *             a.name = policy.type_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 *             return a
 * 
*/
      __pyx_t_5 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 140, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_v_a->__pyx_base.__pyx_base.name);
      __Pyx_DECREF(__pyx_v_a->__pyx_base.__pyx_base.name);
      __pyx_v_a->__pyx_base.__pyx_base.name = ((PyObject*)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":141
 *             a.key = <uintptr_t>symbol
 *             a.name = policy.type_value_to_name(symbol.s.value - 1)
 *             return a             # <<<<<<<<<<<<<<
 * 
 *     cdef load_types(self):
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __Pyx_INCREF((PyObject *)__pyx_v_a);
      __pyx_r = __pyx_v_a;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;

    /* "setools/policyrep/typeattr.pxi":133
 *                 f"{policy.type_value_to_name(symbol.s.value - 1)} is not an attribute")
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _typeattr_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    goto __pyx_L0;
  }

  /* "setools/policyrep/typeattr.pxi":125
 *     cdef list _types
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline TypeAttribute factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):
 *         """Factory function for creating TypeAttribute objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_a);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":143
 *             return a
 * 
 *     cdef load_types(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._types is None:
*/

static PyObject *__pyx_f_7setools_9policyrep_13TypeAttribute_load_types(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  type_datum_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("load_types", 0);

  /* "setools/policyrep/typeattr.pxi":144
 * 
 *     cdef load_types(self):
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key             # <<<<<<<<<<<<<<
 *         if self._types is None:
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))
*/
  __pyx_v_symbol = ((type_datum_t *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key);

  /* "setools/policyrep/typeattr.pxi":145
 *     cdef load_types(self):
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._types is None:             # <<<<<<<<<<<<<<
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
*/
  __pyx_t_1 = (__pyx_v_self->_types == ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":146
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._types is None:
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, other):
*/
    __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PySequence_ListKeepNew(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_self->_types);
    __Pyx_DECREF(__pyx_v_self->_types);
    __pyx_v_self->_types = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":145
 *     cdef load_types(self):
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._types is None:             # <<<<<<<<<<<<<<
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
*/
  }

  /* "setools/policyrep/typeattr.pxi":143
 *             return a
 * 
 *     cdef load_types(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._types is None:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.load_types", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":148
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return other in self._types
*/

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_13TypeAttribute_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static int __pyx_pw_7setools_9policyrep_13TypeAttribute_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute___contains__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7setools_9policyrep_13TypeAttribute___contains__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__contains__", 0);

  /* "setools/policyrep/typeattr.pxi":149
 * 
 *     def __contains__(self, other):
 *         self.load_types()             # <<<<<<<<<<<<<<
 *         return other in self._types
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->load_types(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":150
 *     def __contains__(self, other):
 *         self.load_types()
 *         return other in self._types             # <<<<<<<<<<<<<<
 * 
 *     def __iter__(self):
*/
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_other, __pyx_v_self->_types, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(22, 150, __pyx_L1_error)
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":148
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return other in self._types
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":152
 *         return other in self._types
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return iter(self._types)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_3__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_3__iter__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_2__iter__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_2__iter__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__iter__", 0);

  /* "setools/policyrep/typeattr.pxi":153
 * 
 *     def __iter__(self):
 *         self.load_types()             # <<<<<<<<<<<<<<
 *         return iter(self._types)
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->load_types(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":154
 *     def __iter__(self):
 *         self.load_types()
 *         return iter(self._types)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_types;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":152
 *         return other in self._types
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return iter(self._types)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":156
 *         return iter(self._types)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return len(self._types)
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_13TypeAttribute_5__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_13TypeAttribute_5__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_4__len__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_13TypeAttribute_4__len__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/typeattr.pxi":157
 * 
 *     def __len__(self):
 *         self.load_types()             # <<<<<<<<<<<<<<
 *         return len(self._types)
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->load_types(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":158
 *     def __len__(self):
 *         self.load_types()
 *         return len(self._types)             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
*/
  __pyx_t_1 = __pyx_v_self->_types;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(22, 158, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(22, 158, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":156
 *         return iter(self._types)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return len(self._types)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":160
 *         return len(self._types)
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this attribute into its member types."""
 *         self.load_types()
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_7expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13TypeAttribute_6expand, "Generator that expands this attribute into its member types.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13TypeAttribute_7expand = {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_7expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13TypeAttribute_6expand};
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_7expand(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("expand", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("expand", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_6expand(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_6expand(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);

  /* "setools/policyrep/typeattr.pxi":162
 *     def expand(self):
 *         """Generator that expands this attribute into its member types."""
 *         self.load_types()             # <<<<<<<<<<<<<<
 *         return iter(self._types)
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->load_types(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":163
 *         """Generator that expands this attribute into its member types."""
 *         self.load_types()
 *         return iter(self._types)             # <<<<<<<<<<<<<<
 * 
 *     def attributes(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_types;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":160
 *         return len(self._types)
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this attribute into its member types."""
 *         self.load_types()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":165
 *         return iter(self._types)
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have attributes.")
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_9attributes(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13TypeAttribute_8attributes, "Generator that yields all attributes for this type.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13TypeAttribute_9attributes = {"attributes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_9attributes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13TypeAttribute_8attributes};
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_9attributes(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("attributes (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("attributes", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("attributes", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_8attributes(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_8attributes(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("attributes", 0);

  /* "setools/policyrep/typeattr.pxi":167
 *     def attributes(self):
 *         """Generator that yields all attributes for this type."""
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have attributes.")             # <<<<<<<<<<<<<<
 * 
 *     def aliases(self):
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SymbolUseError); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.__pyx_base.name); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_is_an_attribute_thus_does_not_h); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 167, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(22, 167, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":165
 *         return iter(self._types)
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have attributes.")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.attributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":169
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have attributes.")
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have aliases.")
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_11aliases(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7setools_9policyrep_13TypeAttribute_10aliases, "Generator that yields all aliases for this type.");
static PyMethodDef __pyx_mdef_7setools_9policyrep_13TypeAttribute_11aliases = {"aliases", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_11aliases, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13TypeAttribute_10aliases};
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_11aliases(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("aliases (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("aliases", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("aliases", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_10aliases(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_10aliases(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("aliases", 0);

  /* "setools/policyrep/typeattr.pxi":171
 *     def aliases(self):
 *         """Generator that yields all aliases for this type."""
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have aliases.")             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SymbolUseError); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.__pyx_base.name); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_is_an_attribute_thus_does_not_h_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(22, 171, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":169
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have attributes.")
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have aliases.")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":173
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have aliases.")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def ispermissive(self):
 *         """(T/F) the type is permissive."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_12ispermissive_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_12ispermissive_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_12ispermissive___get__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_12ispermissive___get__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/typeattr.pxi":176
 *     def ispermissive(self):
 *         """(T/F) the type is permissive."""
 *         raise SymbolUseError(f"{self.name} is an attribute, thus cannot be permissive.")             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SymbolUseError); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.__pyx_base.name); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_is_an_attribute_thus_cannot_be); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(22, 176, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":173
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have aliases.")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def ispermissive(self):
 *         """(T/F) the type is permissive."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.ispermissive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":178
 *         raise SymbolUseError(f"{self.name} is an attribute, thus cannot be permissive.")
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"attribute {self.name};"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_13statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13TypeAttribute_13statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_13statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_13statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_12statement(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_12statement(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2[3];
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/typeattr.pxi":179
 * 
 *     def statement(self):
 *         return f"attribute {self.name};"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.__pyx_base.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2[0] = __pyx_mstate_global->__pyx_kp_u_attribute;
  __pyx_t_2[1] = __pyx_t_1;
  __pyx_t_2[2] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, 10 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":178
 *         raise SymbolUseError(f"{self.name} is an attribute, thus cannot be permissive.")
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"attribute {self.name};"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_15__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13TypeAttribute_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_15__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_15__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_14__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_14__reduce_cython__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._types, self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_types);
  __Pyx_GIVEREF(__pyx_v_self->_types);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_types) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->__pyx_base.__pyx_base.name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x22ceaf7, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_types != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.__pyx_base.name != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x22ceaf7, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x22ceaf7, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x22ceaf7, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TypeAttribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_36498167);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_36498167);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_36498167) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x22ceaf7, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x22ceaf7, None), state
 *     else:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x22ceaf7, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_TypeAttribute__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TypeAttribute); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_36498167);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_36498167);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_36498167) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x22ceaf7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TypeAttribute__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_17__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13TypeAttribute_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_17__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_17__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_16__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_16__setstate_cython__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x22ceaf7, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_TypeAttribute__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_TypeAttribute__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x22ceaf7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TypeAttribute__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":185
 * # Hash Table Iterator Classes
 * #
 * cdef inline bint type_is_alias(sepol.type_datum_t *datum):             # <<<<<<<<<<<<<<
 *     """Determine if the type datum is an alias."""
 *     return (datum.primary == 0 and datum.flavor == sepol.TYPE_TYPE) \
*/

static CYTHON_INLINE int __pyx_f_7setools_9policyrep_type_is_alias(type_datum_t *__pyx_v_datum) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "setools/policyrep/typeattr.pxi":187
 * cdef inline bint type_is_alias(sepol.type_datum_t *datum):
 *     """Determine if the type datum is an alias."""
 *     return (datum.primary == 0 and datum.flavor == sepol.TYPE_TYPE) \             # <<<<<<<<<<<<<<
 *             or datum.flavor == sepol.TYPE_ALIAS
 * 
*/
  __pyx_t_2 = (__pyx_v_datum->primary == 0);
  if (!__pyx_t_2) {
    goto __pyx_L4_next_or;
  } else {
  }
  __pyx_t_2 = (__pyx_v_datum->flavor == TYPE_TYPE);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_L4_next_or:;

  /* "setools/policyrep/typeattr.pxi":188
 *     """Determine if the type datum is an alias."""
 *     return (datum.primary == 0 and datum.flavor == sepol.TYPE_TYPE) \
 *             or datum.flavor == sepol.TYPE_ALIAS             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = (__pyx_v_datum->flavor == TYPE_ALIAS);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":185
 * # Hash Table Iterator Classes
 * #
 * cdef inline bint type_is_alias(sepol.type_datum_t *datum):             # <<<<<<<<<<<<<<
 *     """Determine if the type datum is an alias."""
 *     return (datum.primary == 0 and datum.flavor == sepol.TYPE_TYPE) \
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":195
 *     """Iterate over types in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_19TypeHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":198
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
 *         i = TypeHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 198, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":199
 *         """Factory function for creating Role iterators."""
 *         i = TypeHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/typeattr.pxi":200
 *         i = TypeHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/typeattr.pxi":201
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":202
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":195
 *     """Iterate over types in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":204
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/typeattr.pxi":206
 *     def __next__(self):
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()             # <<<<<<<<<<<<<<
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":208
 *         super().__next__()
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum             # <<<<<<<<<<<<<<
 *         while datum.flavor != sepol.TYPE_TYPE or type_is_alias(datum):
 *             super().__next__()
*/
  __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum);

  /* "setools/policyrep/typeattr.pxi":209
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum
 *         while datum.flavor != sepol.TYPE_TYPE or type_is_alias(datum):             # <<<<<<<<<<<<<<
 *             super().__next__()
 *             datum = <sepol.type_datum_t *> self.curr.datum
*/
  while (1) {
    __pyx_t_7 = (__pyx_v_datum->flavor != TYPE_TYPE);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_7 = __pyx_f_7setools_9policyrep_type_is_alias(__pyx_v_datum); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(22, 209, __pyx_L1_error)
    __pyx_t_6 = __pyx_t_7;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_6) break;

    /* "setools/policyrep/typeattr.pxi":210
 *         datum = <sepol.type_datum_t *> self.curr.datum
 *         while datum.flavor != sepol.TYPE_TYPE or type_is_alias(datum):
 *             super().__next__()             # <<<<<<<<<<<<<<
 *             datum = <sepol.type_datum_t *> self.curr.datum
 * 
*/
    __pyx_t_4 = NULL;
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator), ((PyObject *)__pyx_v_self)};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_3 = __pyx_t_2;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/typeattr.pxi":211
 *         while datum.flavor != sepol.TYPE_TYPE or type_is_alias(datum):
 *             super().__next__()
 *             datum = <sepol.type_datum_t *> self.curr.datum             # <<<<<<<<<<<<<<
 * 
 *         return Type.factory(self.policy, datum)
*/
    __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
  }

  /* "setools/policyrep/typeattr.pxi":213
 *             datum = <sepol.type_datum_t *> self.curr.datum
 * 
 *         return Type.factory(self.policy, datum)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_datum)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":204
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":215
 *         return Type.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  int __pyx_t_1;
  type_datum_t *__pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  struct hashtab_node *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "setools/policyrep/typeattr.pxi":218
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *         cdef size_t count = 0
 * 
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/typeattr.pxi":219
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0
 *         cdef size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/typeattr.pxi":221
 *         cdef size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_1 = (__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/typeattr.pxi":222
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
*/
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/typeattr.pxi":223
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and not type_is_alias(datum):
*/
    while (1) {
      __pyx_t_1 = (__pyx_v_node != NULL);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/typeattr.pxi":224
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and not type_is_alias(datum):
 *                     count += 1
*/
      __pyx_t_1 = (__pyx_v_node != 0);
      if (__pyx_t_1) {
        __pyx_t_2 = ((type_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/typeattr.pxi":225
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and not type_is_alias(datum):             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      __pyx_t_3 = (__pyx_v_datum != NULL);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = (__pyx_v_datum->flavor == TYPE_TYPE);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = __pyx_f_7setools_9policyrep_type_is_alias(__pyx_v_datum); if (unlikely(__pyx_t_3 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(22, 225, __pyx_L1_error)
      __pyx_t_4 = (!__pyx_t_3);
      __pyx_t_1 = __pyx_t_4;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/typeattr.pxi":226
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and not type_is_alias(datum):
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/typeattr.pxi":225
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and not type_is_alias(datum):             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      }

      /* "setools/policyrep/typeattr.pxi":228
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_5 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_5;
    }

    /* "setools/policyrep/typeattr.pxi":230
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/typeattr.pxi":232
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":215
 *         return Type.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":234
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19TypeHashtabIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/typeattr.pxi":235
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 235, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 235, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":238
 * 
 *         # advance over any attributes or aliases
 *         while (<sepol.type_datum_t *> self.node.datum).flavor != sepol.TYPE_TYPE:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
*/
  while (1) {
    __pyx_t_6 = (((type_datum_t *)__pyx_v_self->__pyx_base.node->datum)->flavor != TYPE_TYPE);
    if (!__pyx_t_6) break;

    /* "setools/policyrep/typeattr.pxi":239
 *         # advance over any attributes or aliases
 *         while (<sepol.type_datum_t *> self.node.datum).flavor != sepol.TYPE_TYPE:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 * 
*/
    ((struct __pyx_vtabstruct_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self)); if (unlikely(PyErr_Occurred())) __PYX_ERR(22, 239, __pyx_L1_error)
  }

  /* "setools/policyrep/typeattr.pxi":234
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19TypeHashtabIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19TypeHashtabIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":246
 *     """Iterate over type attributes in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":249
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
 *         i = TypeAttributeHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 249, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":250
 *         """Factory function for creating Role iterators."""
 *         i = TypeAttributeHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/typeattr.pxi":251
 *         i = TypeAttributeHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/typeattr.pxi":252
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 252, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":253
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":246
 *     """Iterate over type attributes in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":255
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         while (<sepol.type_datum_t *> self.curr.datum).flavor != sepol.TYPE_ATTRIB:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/typeattr.pxi":256
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         while (<sepol.type_datum_t *> self.curr.datum).flavor != sepol.TYPE_ATTRIB:
 *             super().__next__()
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 256, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 256, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":257
 *     def __next__(self):
 *         super().__next__()
 *         while (<sepol.type_datum_t *> self.curr.datum).flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *             super().__next__()
 * 
*/
  while (1) {
    __pyx_t_6 = (((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum)->flavor != TYPE_ATTRIB);
    if (!__pyx_t_6) break;

    /* "setools/policyrep/typeattr.pxi":258
 *         super().__next__()
 *         while (<sepol.type_datum_t *> self.curr.datum).flavor != sepol.TYPE_ATTRIB:
 *             super().__next__()             # <<<<<<<<<<<<<<
 * 
 *         return TypeAttribute.factory(self.policy, <sepol.type_datum_t *> self.curr.datum)
*/
    __pyx_t_4 = NULL;
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator), ((PyObject *)__pyx_v_self)};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 258, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_3 = __pyx_t_2;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 258, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "setools/policyrep/typeattr.pxi":260
 *             super().__next__()
 * 
 *         return TypeAttribute.factory(self.policy, <sepol.type_datum_t *> self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_13TypeAttribute_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":255
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         while (<sepol.type_datum_t *> self.curr.datum).flavor != sepol.TYPE_ATTRIB:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":262
 *         return TypeAttribute.factory(self.policy, <sepol.type_datum_t *> self.curr.datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  int __pyx_t_1;
  type_datum_t *__pyx_t_2;
  int __pyx_t_3;
  struct hashtab_node *__pyx_t_4;

  /* "setools/policyrep/typeattr.pxi":265
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *         cdef size_t count = 0
 * 
*/
  __pyx_v_bucket = 0;

  /* "setools/policyrep/typeattr.pxi":266
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0
 *         cdef size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
*/
  __pyx_v_count = 0;

  /* "setools/policyrep/typeattr.pxi":268
 *         cdef size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
*/
  while (1) {
    __pyx_t_1 = (__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/typeattr.pxi":269
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
*/
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/typeattr.pxi":270
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_ATTRIB:
*/
    while (1) {
      __pyx_t_1 = (__pyx_v_node != NULL);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/typeattr.pxi":271
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and datum.flavor == sepol.TYPE_ATTRIB:
 *                     count += 1
*/
      __pyx_t_1 = (__pyx_v_node != 0);
      if (__pyx_t_1) {
        __pyx_t_2 = ((type_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/typeattr.pxi":272
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      __pyx_t_3 = (__pyx_v_datum != NULL);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = (__pyx_v_datum->flavor == TYPE_ATTRIB);
      __pyx_t_1 = __pyx_t_3;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/typeattr.pxi":273
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_ATTRIB:
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
*/
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/typeattr.pxi":272
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
*/
      }

      /* "setools/policyrep/typeattr.pxi":275
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
*/
      __pyx_t_4 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_4;
    }

    /* "setools/policyrep/typeattr.pxi":277
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
*/
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/typeattr.pxi":279
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
*/
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":262
 *         return TypeAttribute.factory(self.policy, <sepol.type_datum_t *> self.curr.datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":281
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_28TypeAttributeHashtabIterator_5reset = {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_5reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("reset", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/typeattr.pxi":282
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":285
 * 
 *         # advance over any attributes or aliases
 *         while self.node != NULL and (<sepol.type_datum_t *> self.node.datum).flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
*/
  while (1) {
    __pyx_t_7 = (__pyx_v_self->__pyx_base.node != NULL);
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_7 = (((type_datum_t *)__pyx_v_self->__pyx_base.node->datum)->flavor != TYPE_ATTRIB);
    __pyx_t_6 = __pyx_t_7;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_6) break;

    /* "setools/policyrep/typeattr.pxi":286
 *         # advance over any attributes or aliases
 *         while self.node != NULL and (<sepol.type_datum_t *> self.node.datum).flavor != sepol.TYPE_ATTRIB:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 * 
*/
    ((struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self)); if (unlikely(PyErr_Occurred())) __PYX_ERR(22, 286, __pyx_L1_error)
  }

  /* "setools/policyrep/typeattr.pxi":281
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeHashtabIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_28TypeAttributeHashtabIterator_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_28TypeAttributeHashtabIterator_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":296
 *     """Iterate over a type ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):
 *         """Factory function for creating TypeEbitmapIterator."""
*/

static PyObject *__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":299
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):
 *         """Factory function for creating TypeEbitmapIterator."""
 *         i = TypeEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = symbol
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 299, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":300
 *         """Factory function for creating TypeEbitmapIterator."""
 *         i = TypeEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = symbol
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/typeattr.pxi":301
 *         i = TypeEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = symbol             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.bmap = __pyx_v_symbol;

  /* "setools/policyrep/typeattr.pxi":302
 *         i.policy = policy
 *         i.bmap = symbol
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":303
 *         i.bmap = symbol
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":296
 *     """Iterate over a type ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):
 *         """Factory function for creating TypeEbitmapIterator."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TypeEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":305
 *         return i
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeEbitmapIterator from a type set."""
*/

static PyObject *__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory_from_set", 0);

  /* "setools/policyrep/typeattr.pxi":308
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
*/
  __pyx_t_1 = (__pyx_v_symbol->flags != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":309
 *         """Factory function for creating TypeEbitmapIterator from a type set."""
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_or_in_the_type_set_this_is_not};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 309, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":308
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
*/
  }

  /* "setools/policyrep/typeattr.pxi":310
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
*/
  __pyx_t_1 = (__pyx_v_symbol->negset.node != NULL);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":311
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 * 
 *         return TypeEbitmapIterator.factory(policy, &symbol.types)
*/
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Negations_in_the_type_set_this_i};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 311, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":310
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
*/
  }

  /* "setools/policyrep/typeattr.pxi":313
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 *         return TypeEbitmapIterator.factory(policy, &symbol.types)             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":305
 *         return i
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeEbitmapIterator from a type set."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeEbitmapIterator.factory_from_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":315
 *         return TypeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Type.factory(self.policy, self.policy.type_value_to_datum(self.bit))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  type_datum_t *__pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/typeattr.pxi":316
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Type.factory(self.policy, self.policy.type_value_to_datum(self.bit))
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":317
 *     def __next__(self):
 *         super().__next__()
 *         return Type.factory(self.policy, self.policy.type_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_6 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit); if (unlikely(PyErr_Occurred())) __PYX_ERR(22, 317, __pyx_L1_error)
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_t_6)); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":315
 *         return TypeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Type.factory(self.policy, self.policy.type_value_to_datum(self.bit))
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19TypeEbitmapIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19TypeEbitmapIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.TypeEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":324
 *     """Iterate over a type attribute ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
*/

static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap) {
  struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":327
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeAttributeEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = bmap
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 327, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":328
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeAttributeEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = bmap
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/typeattr.pxi":329
 *         i = TypeAttributeEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = bmap             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.bmap = __pyx_v_bmap;

  /* "setools/policyrep/typeattr.pxi":330
 *         i.policy = policy
 *         i.bmap = bmap
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":331
 *         i.bmap = bmap
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":324
 *     """Iterate over a type attribute ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":333
 *         return i
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
*/

static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory_from_set", 0);

  /* "setools/policyrep/typeattr.pxi":336
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
*/
  __pyx_t_1 = (__pyx_v_symbol->flags != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":337
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_or_in_the_type_set_this_is_not};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 337, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":336
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
*/
  }

  /* "setools/policyrep/typeattr.pxi":338
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
*/
  __pyx_t_1 = (__pyx_v_symbol->negset.node != NULL);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":339
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 * 
 *         return TypeAttributeEbitmapIterator.factory(policy, &symbol.types)
*/
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Negations_in_the_type_set_this_i};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 339, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":338
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
*/
  }

  /* "setools/policyrep/typeattr.pxi":341
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 *         return TypeAttributeEbitmapIterator.factory(policy, &symbol.types)             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":333
 *         return i
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeEbitmapIterator.factory_from_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":343
 *         return TypeAttributeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return TypeAttribute.factory(self.policy,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  type_datum_t *__pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/typeattr.pxi":344
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return TypeAttribute.factory(self.policy,
 *                                      self.policy.type_value_to_datum(self.bit))
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":345
 *     def __next__(self):
 *         super().__next__()
 *         return TypeAttribute.factory(self.policy,             # <<<<<<<<<<<<<<
 *                                      self.policy.type_value_to_datum(self.bit))
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/typeattr.pxi":346
 *         super().__next__()
 *         return TypeAttribute.factory(self.policy,
 *                                      self.policy.type_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_6 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit); if (unlikely(PyErr_Occurred())) __PYX_ERR(22, 346, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":345
 *     def __next__(self):
 *         super().__next__()
 *         return TypeAttribute.factory(self.policy,             # <<<<<<<<<<<<<<
 *                                      self.policy.type_value_to_datum(self.bit))
 * 
*/
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_13TypeAttribute_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_t_6)); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":343
 *         return TypeAttributeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return TypeAttribute.factory(self.policy,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_28TypeAttributeEbitmapIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_28TypeAttributeEbitmapIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":353
 *     """Iterate over a type or type attribute ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
*/

static PyObject *__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap) {
  struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":356
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeOrAttributeEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = bmap
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 356, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":357
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeOrAttributeEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = bmap
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/typeattr.pxi":358
 *         i = TypeOrAttributeEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = bmap             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.bmap = __pyx_v_bmap;

  /* "setools/policyrep/typeattr.pxi":359
 *         i.policy = policy
 *         i.bmap = bmap
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":360
 *         i.bmap = bmap
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":353
 *     """Iterate over a type or type attribute ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TypeOrAttributeEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":362
 *         return i
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
*/

static PyObject *__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory_from_set", 0);

  /* "setools/policyrep/typeattr.pxi":365
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
*/
  __pyx_t_1 = (__pyx_v_symbol->flags != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":366
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 366, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 366, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_or_in_the_type_set_this_is_not};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 366, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":365
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
*/
  }

  /* "setools/policyrep/typeattr.pxi":367
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
*/
  __pyx_t_1 = (__pyx_v_symbol->negset.node != NULL);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":368
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 * 
 *         return TypeOrAttributeEbitmapIterator.factory(policy, &symbol.types)
*/
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 368, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 368, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Negations_in_the_type_set_this_i};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 368, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":367
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
*/
  }

  /* "setools/policyrep/typeattr.pxi":370
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 *         return TypeOrAttributeEbitmapIterator.factory(policy, &symbol.types)             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":362
 *         return i
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeOrAttributeEbitmapIterator.factory_from_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":372
 *         return TypeOrAttributeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return type_or_attr_factory(self.policy,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  type_datum_t *__pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/typeattr.pxi":373
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return type_or_attr_factory(self.policy,
 *                                     self.policy.type_value_to_datum(self.bit))
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":374
 *     def __next__(self):
 *         super().__next__()
 *         return type_or_attr_factory(self.policy,             # <<<<<<<<<<<<<<
 *                                     self.policy.type_value_to_datum(self.bit))
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/typeattr.pxi":375
 *         super().__next__()
 *         return type_or_attr_factory(self.policy,
 *                                     self.policy.type_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
*/
  __pyx_t_6 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit); if (unlikely(PyErr_Occurred())) __PYX_ERR(22, 375, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":374
 *     def __next__(self):
 *         super().__next__()
 *         return type_or_attr_factory(self.policy,             # <<<<<<<<<<<<<<
 *                                     self.policy.type_value_to_datum(self.bit))
*/
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_t_6)); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":372
 *         return TypeOrAttributeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return type_or_attr_factory(self.policy,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeOrAttributeEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeOrAttributeEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.TypeOrAttributeEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TypeOrAttributeEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_4User_7factory_2generator34(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/user.pxi":36
 *             # and analysts don't expect to see it in results, and it
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)             # <<<<<<<<<<<<<<
 *                        if r != "object_r")
 * 
*/

static PyObject *__pyx_pf_7setools_9policyrep_4User_7factory_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_34_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(23, 36, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_4User_7factory_2generator34, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_User_factory_locals_genexpr, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(23, 36, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.User.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_4User_7factory_2generator34(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L7_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(23, 36, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(23, 36, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 36, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 36, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(23, 36, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(23, 36, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 36, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(23, 36, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;

    /* "setools/policyrep/user.pxi":37
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)
 *                        if r != "object_r")             # <<<<<<<<<<<<<<
 * 
 *             if policy.mls:
*/
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_r, __pyx_mstate_global->__pyx_n_u_object_r, Py_NE)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(23, 37, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "setools/policyrep/user.pxi":36
 *             # and analysts don't expect to see it in results, and it
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)             # <<<<<<<<<<<<<<
 *                        if r != "object_r")
 * 
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_r);
      __pyx_r = __pyx_cur_scope->__pyx_v_r;
      __Pyx_XGIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L7_resume_from_yield:;
      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_1);
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(23, 36, __pyx_L1_error)

      /* "setools/policyrep/user.pxi":37
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)
 *                        if r != "object_r")             # <<<<<<<<<<<<<<
 * 
 *             if policy.mls:
*/
    }

    /* "setools/policyrep/user.pxi":36
 *             # and analysts don't expect to see it in results, and it
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)             # <<<<<<<<<<<<<<
 *                        if r != "object_r")
 * 
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":19
 *         Range _range
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline User factory(SELinuxPolicy policy, sepol.user_datum_t *symbol):
 *         """Factory function for constructing User objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_User *__pyx_f_7setools_9policyrep_4User_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, user_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_User *__pyx_v_u = 0;
  PyObject *__pyx_gb_7setools_9policyrep_4User_7factory_2generator34 = 0;
  struct __pyx_obj_7setools_9policyrep_User *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/user.pxi":23
 *         """Factory function for constructing User objects."""
 *         cdef User u
 *         try:             # <<<<<<<<<<<<<<
 *             return _user_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/user.pxi":24
 *         cdef User u
 *         try:
 *             return _user_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             u = User.__new__(User)
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__user_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 24, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 24, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_User))))) __PYX_ERR(23, 24, __pyx_L3_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_User *)__pyx_t_5);
      __pyx_t_5 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/user.pxi":23
 *         """Factory function for constructing User objects."""
 *         cdef User u
 *         try:             # <<<<<<<<<<<<<<
 *             return _user_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/user.pxi":25
 *         try:
 *             return _user_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             u = User.__new__(User)
 *             _user_cache[policy][<uintptr_t>symbol] = u
*/
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_6) {
      __Pyx_AddTraceback("setools.policyrep.User.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(23, 25, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "setools/policyrep/user.pxi":26
 *             return _user_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             u = User.__new__(User)             # <<<<<<<<<<<<<<
 *             _user_cache[policy][<uintptr_t>symbol] = u
 *             u.policy = policy
*/
      __pyx_t_8 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_User(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_User), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 26, __pyx_L5_except_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_8);
      __pyx_v_u = ((struct __pyx_obj_7setools_9policyrep_User *)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/user.pxi":27
 *         except KeyError:
 *             u = User.__new__(User)
 *             _user_cache[policy][<uintptr_t>symbol] = u             # <<<<<<<<<<<<<<
 *             u.policy = policy
 *             u.key = <uintptr_t>symbol
*/
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__user_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 27, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely((__Pyx_SetItemInt(__pyx_t_8, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_u), uintptr_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(23, 27, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "setools/policyrep/user.pxi":28
 *             u = User.__new__(User)
 *             _user_cache[policy][<uintptr_t>symbol] = u
 *             u.policy = policy             # <<<<<<<<<<<<<<
 *             u.key = <uintptr_t>symbol
 *             u.name = policy.user_value_to_name(symbol.s.value - 1)
*/
      __Pyx_INCREF((PyObject *)__pyx_v_policy);
      __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
      __Pyx_GOTREF((PyObject *)__pyx_v_u->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF((PyObject *)__pyx_v_u->__pyx_base.__pyx_base.policy);
      __pyx_v_u->__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/user.pxi":29
 *             _user_cache[policy][<uintptr_t>symbol] = u
 *             u.policy = policy
 *             u.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             u.name = policy.user_value_to_name(symbol.s.value - 1)
 * 
*/
      __pyx_v_u->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/user.pxi":30
 *             u.policy = policy
 *             u.key = <uintptr_t>symbol
 *             u.name = policy.user_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 * 
 *             # object_r is implicitly added to all roles by the compiler.
*/
      __pyx_t_8 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 30, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_u->__pyx_base.name);
      __Pyx_DECREF(__pyx_v_u->__pyx_base.name);
      __pyx_v_u->__pyx_base.name = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/user.pxi":36
 *             # and analysts don't expect to see it in results, and it
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)             # <<<<<<<<<<<<<<
 *                        if r != "object_r")
 * 
*/
      __pyx_t_8 = __pyx_f_7setools_9policyrep_19RoleEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->roles.roles)); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 36, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __pyx_pf_7setools_9policyrep_4User_7factory_genexpr(NULL, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(23, 36, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyFrozenSet_New(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 36, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_u->roles);
      __Pyx_DECREF(__pyx_v_u->roles);
      __pyx_v_u->roles = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/user.pxi":39
 *                        if r != "object_r")
 * 
 *             if policy.mls:             # <<<<<<<<<<<<<<
 *                 u._level = Level.factory(policy, &symbol.exp_dfltlevel)
 *                 u._range = Range.factory(policy, &symbol.exp_range)
*/
      if (__pyx_v_policy->mls) {

        /* "setools/policyrep/user.pxi":40
 * 
 *             if policy.mls:
 *                 u._level = Level.factory(policy, &symbol.exp_dfltlevel)             # <<<<<<<<<<<<<<
 *                 u._range = Range.factory(policy, &symbol.exp_range)
 * 
*/
        __pyx_t_8 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory(__pyx_v_policy, (&__pyx_v_symbol->exp_dfltlevel))); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 40, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_8);
        __Pyx_GOTREF((PyObject *)__pyx_v_u->_level);
        __Pyx_DECREF((PyObject *)__pyx_v_u->_level);
        __pyx_v_u->_level = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_8);
        __pyx_t_8 = 0;

        /* "setools/policyrep/user.pxi":41
 *             if policy.mls:
 *                 u._level = Level.factory(policy, &symbol.exp_dfltlevel)
 *                 u._range = Range.factory(policy, &symbol.exp_range)             # <<<<<<<<<<<<<<
 * 
 *             return u
*/
        __pyx_t_8 = ((PyObject *)__pyx_f_7setools_9policyrep_5Range_factory(__pyx_v_policy, (&__pyx_v_symbol->exp_range))); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 41, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_8);
        __Pyx_GOTREF((PyObject *)__pyx_v_u->_range);
        __Pyx_DECREF((PyObject *)__pyx_v_u->_range);
        __pyx_v_u->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_8);
        __pyx_t_8 = 0;

        /* "setools/policyrep/user.pxi":39
 *                        if r != "object_r")
 * 
 *             if policy.mls:             # <<<<<<<<<<<<<<
 *                 u._level = Level.factory(policy, &symbol.exp_dfltlevel)
 *                 u._range = Range.factory(policy, &symbol.exp_range)
*/
      }

      /* "setools/policyrep/user.pxi":43
 *                 u._range = Range.factory(policy, &symbol.exp_range)
 * 
 *             return u             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
      __Pyx_XDECREF((PyObject *)__pyx_r);
      __Pyx_INCREF((PyObject *)__pyx_v_u);
      __pyx_r = __pyx_v_u;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "setools/policyrep/user.pxi":23
 *         """Factory function for constructing User objects."""
 *         cdef User u
 *         try:             # <<<<<<<<<<<<<<
 *             return _user_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/user.pxi":19
 *         Range _range
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline User factory(SELinuxPolicy policy, sepol.user_datum_t *symbol):
 *         """Factory function for constructing User objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.User.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_u);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_4User_7factory_2generator34);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":45
 *             return u
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mls_level(self):
 *         """The user's default MLS level."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_9mls_level_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4User_9mls_level_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_9mls_level___get__(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4User_9mls_level___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/user.pxi":48
 *     def mls_level(self):
 *         """The user's default MLS level."""
 *         if self._level:             # <<<<<<<<<<<<<<
 *             return self._level
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_level)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(23, 48, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/user.pxi":49
 *         """The user's default MLS level."""
 *         if self._level:
 *             return self._level             # <<<<<<<<<<<<<<
 *         else:
 *             raise MLSDisabled
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_self->_level);
    __pyx_r = ((PyObject *)__pyx_v_self->_level);
    goto __pyx_L0;

    /* "setools/policyrep/user.pxi":48
 *     def mls_level(self):
 *         """The user's default MLS level."""
 *         if self._level:             # <<<<<<<<<<<<<<
 *             return self._level
 *         else:
*/
  }

  /* "setools/policyrep/user.pxi":51
 *             return self._level
 *         else:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(23, 51, __pyx_L1_error)
  }

  /* "setools/policyrep/user.pxi":45
 *             return u
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mls_level(self):
 *         """The user's default MLS level."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.User.mls_level.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":53
 *             raise MLSDisabled
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mls_range(self):
 *         """The user's MLS range."""
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_9mls_range_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4User_9mls_range_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_9mls_range___get__(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4User_9mls_range___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/user.pxi":56
 *     def mls_range(self):
 *         """The user's MLS range."""
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return self._range
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_range)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(23, 56, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/user.pxi":57
 *         """The user's MLS range."""
 *         if self._range:
 *             return self._range             # <<<<<<<<<<<<<<
 *         else:
 *             raise MLSDisabled
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_self->_range);
    __pyx_r = ((PyObject *)__pyx_v_self->_range);
    goto __pyx_L0;

    /* "setools/policyrep/user.pxi":56
 *     def mls_range(self):
 *         """The user's MLS range."""
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return self._range
 *         else:
*/
  }

  /* "setools/policyrep/user.pxi":59
 *             return self._range
 *         else:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(23, 59, __pyx_L1_error)
  }

  /* "setools/policyrep/user.pxi":53
 *             raise MLSDisabled
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mls_range(self):
 *         """The user's MLS range."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.User.mls_range.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":61
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_4User_1statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4User_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_4User_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_statement(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_4User_9statement_2generator35(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/user.pxi":63
 *     def statement(self):
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)             # <<<<<<<<<<<<<<
 *             str stmt = f"user {self.name} roles "
 *             size_t count = len(roles)
*/

static PyObject *__pyx_pf_7setools_9policyrep_4User_9statement_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_35_genexpr(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(23, 63, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_4User_9statement_2generator35, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_statement_locals_genexpr, __pyx_mstate_global->__pyx_n_u_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(23, 63, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.User.statement.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_4User_9statement_2generator35(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(23, 63, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(23, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  __pyx_t_2 = 0;
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(23, 63, __pyx_L1_error) }
  __pyx_t_5 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_genexpr_arg_0, 0, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_5;
  __pyx_t_5 = 0;
  while (1) {
    __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, __pyx_t_4);
    if (unlikely(__pyx_t_6 == 0)) break;
    if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(23, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Unicode(__pyx_cur_scope->__pyx_v_r); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_5))) __PYX_ERR(23, 63, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":61
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)
*/

static PyObject *__pyx_pf_7setools_9policyrep_4User_statement(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self) {
  PyObject *__pyx_v_roles = 0;
  PyObject *__pyx_v_stmt = 0;
  size_t __pyx_v_count;
  PyObject *__pyx_gb_7setools_9policyrep_4User_9statement_2generator35 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[3];
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[5];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/user.pxi":63
 *     def statement(self):
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)             # <<<<<<<<<<<<<<
 *             str stmt = f"user {self.name} roles "
 *             size_t count = len(roles)
*/
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_4User_9statement_genexpr(NULL, __pyx_v_self->roles); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Generator_GetInlinedResult(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_roles = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/user.pxi":64
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)
 *             str stmt = f"user {self.name} roles "             # <<<<<<<<<<<<<<
 *             size_t count = len(roles)
 * 
*/
  __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_self->__pyx_base.name); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_user;
  __pyx_t_3[1] = __pyx_t_2;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u_roles_2;
  __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, 5 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 7, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_stmt = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":65
 *             list roles = list(str(r) for r in self.roles)
 *             str stmt = f"user {self.name} roles "
 *             size_t count = len(roles)             # <<<<<<<<<<<<<<
 * 
 *         if count == 1:
*/
  if (unlikely(__pyx_v_roles == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(23, 65, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_v_roles); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(23, 65, __pyx_L1_error)
  __pyx_v_count = __pyx_t_4;

  /* "setools/policyrep/user.pxi":67
 *             size_t count = len(roles)
 * 
 *         if count == 1:             # <<<<<<<<<<<<<<
 *             stmt += roles[0]
 *         else:
*/
  __pyx_t_5 = (__pyx_v_count == 1);
  if (__pyx_t_5) {

    /* "setools/policyrep/user.pxi":68
 * 
 *         if count == 1:
 *             stmt += roles[0]             # <<<<<<<<<<<<<<
 *         else:
 *             stmt += f"{{ {' '.join(sorted(roles))} }}"
*/
    if (unlikely(__pyx_v_roles == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(23, 68, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_roles, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 68, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 68, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(23, 68, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "setools/policyrep/user.pxi":67
 *             size_t count = len(roles)
 * 
 *         if count == 1:             # <<<<<<<<<<<<<<
 *             stmt += roles[0]
 *         else:
*/
    goto __pyx_L3;
  }

  /* "setools/policyrep/user.pxi":70
 *             stmt += roles[0]
 *         else:
 *             stmt += f"{{ {' '.join(sorted(roles))} }}"             # <<<<<<<<<<<<<<
 * 
 *         if self._level:
*/
  /*else*/ {
    __pyx_t_2 = PySequence_List(__pyx_v_roles); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (unlikely((PyList_Sort(__pyx_t_2) < 0))) __PYX_ERR(23, 70, __pyx_L1_error)
    __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u_, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u__6;
    __pyx_t_3[1] = __pyx_t_1;
    __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u__7;
    __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, 2 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
    if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_stmt, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "setools/policyrep/user.pxi":72
 *             stmt += f"{{ {' '.join(sorted(roles))} }}"
 * 
 *         if self._level:             # <<<<<<<<<<<<<<
 *             stmt += f" level {self.mls_level} range {self.mls_range};"
 *         else:
*/
  __pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_level)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(23, 72, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "setools/policyrep/user.pxi":73
 * 
 *         if self._level:
 *             stmt += f" level {self.mls_level} range {self.mls_range};"             # <<<<<<<<<<<<<<
 *         else:
 *             stmt += ";"
*/
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_mls_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_mls_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_level_3;
    __pyx_t_7[1] = __pyx_t_2;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u_range_2;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_7[4] = __pyx_mstate_global->__pyx_kp_u__2;
    __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_7, 5, 7 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlaceSafe(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "setools/policyrep/user.pxi":72
 *             stmt += f"{{ {' '.join(sorted(roles))} }}"
 * 
 *         if self._level:             # <<<<<<<<<<<<<<
 *             stmt += f" level {self.mls_level} range {self.mls_range};"
 *         else:
*/
    goto __pyx_L4;
  }

  /* "setools/policyrep/user.pxi":75
 *             stmt += f" level {self.mls_level} range {self.mls_range};"
 *         else:
 *             stmt += ";"             # <<<<<<<<<<<<<<
 * 
 *         return stmt
*/
  /*else*/ {
    __pyx_t_6 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlaceSafe(__pyx_v_stmt, __pyx_mstate_global->__pyx_kp_u__2); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;
  }
  __pyx_L4:;

  /* "setools/policyrep/user.pxi":77
 *             stmt += ";"
 * 
 *         return stmt             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stmt);
  __pyx_r = __pyx_v_stmt;
  goto __pyx_L0;

  /* "setools/policyrep/user.pxi":61
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.User.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_roles);
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_XDECREF(__pyx_gb_7setools_9policyrep_4User_9statement_2generator35);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":15
 * 
 *     cdef:
 *         readonly frozenset roles             # <<<<<<<<<<<<<<
 *         Level _level
 *         Range _range
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_5roles_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4User_5roles_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_5roles___get__(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4User_5roles___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->roles);
  __pyx_r = __pyx_v_self->roles;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_4User_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4User_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_4User_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4User_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._level, self._range, self.key, self.name, self.policy, self.roles)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_level);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_level);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->_level)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_range);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_range);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->_range)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->__pyx_base.name) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->roles);
  __Pyx_GIVEREF(__pyx_v_self->roles);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_v_self->roles) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._level, self._range, self.key, self.name, self.policy, self.roles)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._level, self._range, self.key, self.name, self.policy, self.roles)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._level is not None or self._range is not None or self.name is not None or self.policy is not None or self.roles is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._level, self._range, self.key, self.name, self.policy, self.roles)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._level is not None or self._range is not None or self.name is not None or self.policy is not None or self.roles is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_User, (type(self), 0xb60edeb, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->_level) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->_range) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->roles != ((PyObject*)Py_None));
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._level is not None or self._range is not None or self.name is not None or self.policy is not None or self.roles is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_User, (type(self), 0xb60edeb, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._level is not None or self._range is not None or self.name is not None or self.policy is not None or self.roles is not None
 *     if use_setstate:
 *         return __pyx_unpickle_User, (type(self), 0xb60edeb, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_User, (type(self), 0xb60edeb, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_User); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_190901739);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_190901739);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_190901739) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._level is not None or self._range is not None or self.name is not None or self.policy is not None or self.roles is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_User, (type(self), 0xb60edeb, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_User, (type(self), 0xb60edeb, None), state
 *     else:
 *         return __pyx_unpickle_User, (type(self), 0xb60edeb, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_User__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_User); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_190901739);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_190901739);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_190901739) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.User.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_User, (type(self), 0xb60edeb, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_User__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_4User_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4User_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_4User_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.User.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4User_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_User, (type(self), 0xb60edeb, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_User__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_User__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_User, (type(self), 0xb60edeb, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_User__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.User.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":87
 *     """Iterate over users in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating User iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_19UserHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/user.pxi":90
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating User iterators."""
 *         i = UserHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_UserHashtabIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 90, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":91
 *         """Factory function for creating User iterators."""
 *         i = UserHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/user.pxi":92
 *         i = UserHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/user.pxi":93
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 93, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":94
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/user.pxi":87
 *     """Iterate over users in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating User iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.UserHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":96
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return User.factory(self.policy, <sepol.user_datum_t *>self.curr.datum)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/user.pxi":97
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return User.factory(self.policy, <sepol.user_datum_t *>self.curr.datum)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_UserHashtabIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":98
 *     def __next__(self):
 *         super().__next__()
 *         return User.factory(self.policy, <sepol.user_datum_t *>self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_4User_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((user_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/user.pxi":96
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return User.factory(self.policy, <sepol.user_datum_t *>self.curr.datum)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.UserHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19UserHashtabIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19UserHashtabIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserHashtabIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.UserHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19UserHashtabIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19UserHashtabIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.UserHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserHashtabIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_node_self_table_c, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.UserHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":105
 *     """Iterate over a user ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating User ebitmap iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_19UserEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap) {
  struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/user.pxi":108
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating User ebitmap iterators."""
 *         i = UserEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = bmap
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 108, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":109
 *         """Factory function for creating User ebitmap iterators."""
 *         i = UserEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = bmap
 *         i.reset()
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/user.pxi":110
 *         i = UserEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = bmap             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
*/
  __pyx_v_i->__pyx_base.bmap = __pyx_v_bmap;

  /* "setools/policyrep/user.pxi":111
 *         i.policy = policy
 *         i.bmap = bmap
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_i);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_reset, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":112
 *         i.bmap = bmap
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/user.pxi":105
 *     """Iterate over a user ebitmap."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating User ebitmap iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.UserEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":114
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return User.factory(self.policy, self.policy.user_value_to_datum(self.bit))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  user_datum_t *__pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/user.pxi":115
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return User.factory(self.policy, self.policy.user_value_to_datum(self.bit))
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":116
 *     def __next__(self):
 *         super().__next__()
 *         return User.factory(self.policy, self.policy.user_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_6 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 116, __pyx_L1_error)
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_4User_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_t_6)); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/user.pxi":114
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return User.factory(self.policy, self.policy.user_value_to_datum(self.bit))
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.UserEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19UserEbitmapIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.UserEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19UserEbitmapIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.UserEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_bmap_self_node_cannot_be_co, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.UserEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":18
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < IomemconRange.MIN or self.high < IomemconRange.MIN:
 *             raise ValueError(f"Memory address must be >= {IomemconRange.MIN:0=#6x}: {self}")
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13IomemconRange_1__post_init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13IomemconRange_1__post_init__ = {"__post_init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13IomemconRange_1__post_init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13IomemconRange_1__post_init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__post_init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(24, 18, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 18, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__post_init__", 0) < (0)) __PYX_ERR(24, 18, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__post_init__", 1, 1, 1, i); __PYX_ERR(24, 18, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 18, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__post_init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(24, 18, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.IomemconRange.__post_init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13IomemconRange___post_init__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13IomemconRange___post_init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[4];
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__post_init__", 0);

  /* "setools/policyrep/xencontext.pxi":19
 * 
 *     def __post_init__(self):
 *         if self.low < IomemconRange.MIN or self.high < IomemconRange.MIN:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Memory address must be >= {IomemconRange.MIN:0=#6x}: {self}")
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_IomemconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(24, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!__pyx_t_5) {
  } else {
    __pyx_t_1 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_IomemconRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(24, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_1 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/xencontext.pxi":20
 *     def __post_init__(self):
 *         if self.low < IomemconRange.MIN or self.high < IomemconRange.MIN:
 *             raise ValueError(f"Memory address must be >= {IomemconRange.MIN:0=#6x}: {self}")             # <<<<<<<<<<<<<<
 * 
 *         if self.low > IomemconRange.MAX or self.high > IomemconRange.MAX:
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_IomemconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Format(__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Memory_address_must_be;
    __pyx_t_7[1] = __pyx_t_3;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__24;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, 26 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_8};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 20, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(24, 20, __pyx_L1_error)

    /* "setools/policyrep/xencontext.pxi":19
 * 
 *     def __post_init__(self):
 *         if self.low < IomemconRange.MIN or self.high < IomemconRange.MIN:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Memory address must be >= {IomemconRange.MIN:0=#6x}: {self}")
 * 
*/
  }

  /* "setools/policyrep/xencontext.pxi":22
 *             raise ValueError(f"Memory address must be >= {IomemconRange.MIN:0=#6x}: {self}")
 * 
 *         if self.low > IomemconRange.MAX or self.high > IomemconRange.MAX:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Memory address must be <= {IomemconRange.MAX:0=#6x}: {self}")
 * 
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_IomemconRange); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!__pyx_t_5) {
  } else {
    __pyx_t_1 = __pyx_t_5;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_IomemconRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_5;
  __pyx_L7_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/xencontext.pxi":23
 * 
 *         if self.low > IomemconRange.MAX or self.high > IomemconRange.MAX:
 *             raise ValueError(f"Memory address must be <= {IomemconRange.MAX:0=#6x}: {self}")             # <<<<<<<<<<<<<<
 * 
 *         if self.low > self.high:
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_IomemconRange); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 23, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 23, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_Format(__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 23, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 23, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Memory_address_must_be_2;
    __pyx_t_7[1] = __pyx_t_8;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__24;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, 26 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 23, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 23, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(24, 23, __pyx_L1_error)

    /* "setools/policyrep/xencontext.pxi":22
 *             raise ValueError(f"Memory address must be >= {IomemconRange.MIN:0=#6x}: {self}")
 * 
 *         if self.low > IomemconRange.MAX or self.high > IomemconRange.MAX:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Memory address must be <= {IomemconRange.MAX:0=#6x}: {self}")
 * 
*/
  }

  /* "setools/policyrep/xencontext.pxi":25
 *             raise ValueError(f"Memory address must be <= {IomemconRange.MAX:0=#6x}: {self}")
 * 
 *         if self.low > self.high:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"The low mem addr must be smaller than the high mem addr: {self}")
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(24, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/xencontext.pxi":26
 * 
 *         if self.low > self.high:
 *             raise ValueError(f"The low mem addr must be smaller than the high mem addr: {self}")             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
    __pyx_t_3 = NULL;
    __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 26, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_The_low_mem_addr_must_be_smaller, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 26, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 26, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(24, 26, __pyx_L1_error)

    /* "setools/policyrep/xencontext.pxi":25
 *             raise ValueError(f"Memory address must be <= {IomemconRange.MAX:0=#6x}: {self}")
 * 
 *         if self.low > self.high:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"The low mem addr must be smaller than the high mem addr: {self}")
 * 
*/
  }

  /* "setools/policyrep/xencontext.pxi":18
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < IomemconRange.MIN or self.high < IomemconRange.MIN:
 *             raise ValueError(f"Memory address must be >= {IomemconRange.MIN:0=#6x}: {self}")
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.IomemconRange.__post_init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":28
 *             raise ValueError(f"The low mem addr must be smaller than the high mem addr: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13IomemconRange_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13IomemconRange_3__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13IomemconRange_3__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13IomemconRange_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(24, 28, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 28, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(24, 28, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(24, 28, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 28, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(24, 28, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.IomemconRange.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13IomemconRange_2__str__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13IomemconRange_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/xencontext.pxi":29
 * 
 *     def __str__(self):
 *         if self.low == self.high:             # <<<<<<<<<<<<<<
 *             return f"{self.low:0=#6x}"
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 29, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(24, 29, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {

    /* "setools/policyrep/xencontext.pxi":30
 *     def __str__(self):
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"             # <<<<<<<<<<<<<<
 *         else:
 *             return f"{self.low:0=#6x}-{self.high:0=#6x}"
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 30, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_Format(__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 30, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/xencontext.pxi":29
 * 
 *     def __str__(self):
 *         if self.low == self.high:             # <<<<<<<<<<<<<<
 *             return f"{self.low:0=#6x}"
 *         else:
*/
  }

  /* "setools/policyrep/xencontext.pxi":32
 *             return f"{self.low:0=#6x}"
 *         else:
 *             return f"{self.low:0=#6x}-{self.high:0=#6x}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_Format(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_Format(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5[0] = __pyx_t_3;
    __pyx_t_5[1] = __pyx_mstate_global->__pyx_kp_u__20;
    __pyx_t_5[2] = __pyx_t_1;
    __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
    if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/xencontext.pxi":28
 *             raise ValueError(f"The low mem addr must be smaller than the high mem addr: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.IomemconRange.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":46
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < IoportconRange.MIN or self.high < IoportconRange.MIN:
 *             raise ValueError(f"Port numbers must be >= {IoportconRange.MIN:0=#6x}: {self}")
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14IoportconRange_1__post_init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14IoportconRange_1__post_init__ = {"__post_init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14IoportconRange_1__post_init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14IoportconRange_1__post_init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__post_init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(24, 46, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 46, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__post_init__", 0) < (0)) __PYX_ERR(24, 46, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__post_init__", 1, 1, 1, i); __PYX_ERR(24, 46, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 46, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__post_init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(24, 46, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.IoportconRange.__post_init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_14IoportconRange___post_init__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14IoportconRange___post_init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[4];
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__post_init__", 0);

  /* "setools/policyrep/xencontext.pxi":47
 * 
 *     def __post_init__(self):
 *         if self.low < IoportconRange.MIN or self.high < IoportconRange.MIN:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Port numbers must be >= {IoportconRange.MIN:0=#6x}: {self}")
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_IoportconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!__pyx_t_5) {
  } else {
    __pyx_t_1 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_IoportconRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_1 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/xencontext.pxi":48
 *     def __post_init__(self):
 *         if self.low < IoportconRange.MIN or self.high < IoportconRange.MIN:
 *             raise ValueError(f"Port numbers must be >= {IoportconRange.MIN:0=#6x}: {self}")             # <<<<<<<<<<<<<<
 * 
 *         if self.low > IoportconRange.MAX or self.high > IoportconRange.MAX:
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_IoportconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MIN); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Format(__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Port_numbers_must_be;
    __pyx_t_7[1] = __pyx_t_3;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__24;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, 24 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_8};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 48, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(24, 48, __pyx_L1_error)

    /* "setools/policyrep/xencontext.pxi":47
 * 
 *     def __post_init__(self):
 *         if self.low < IoportconRange.MIN or self.high < IoportconRange.MIN:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"Port numbers must be >= {IoportconRange.MIN:0=#6x}: {self}")
 * 
*/
  }

  /* "setools/policyrep/xencontext.pxi":50
 *             raise ValueError(f"Port numbers must be >= {IoportconRange.MIN:0=#6x}: {self}")
 * 
 *         if self.low > IoportconRange.MAX or self.high > IoportconRange.MAX:             # <<<<<<<<<<<<<<
 *             raise ValueError( f"Port numbers must be <= {IoportconRange.MAX:0=#6x}: {self}")
 * 
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_IoportconRange); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(24, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!__pyx_t_5) {
  } else {
    __pyx_t_1 = __pyx_t_5;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_IoportconRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(24, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_5;
  __pyx_L7_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/xencontext.pxi":51
 * 
 *         if self.low > IoportconRange.MAX or self.high > IoportconRange.MAX:
 *             raise ValueError( f"Port numbers must be <= {IoportconRange.MAX:0=#6x}: {self}")             # <<<<<<<<<<<<<<
 * 
 *         if self.low > self.high:
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_IoportconRange); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_MAX); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_Format(__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Port_numbers_must_be_2;
    __pyx_t_7[1] = __pyx_t_8;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__24;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, 24 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 51, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(24, 51, __pyx_L1_error)

    /* "setools/policyrep/xencontext.pxi":50
 *             raise ValueError(f"Port numbers must be >= {IoportconRange.MIN:0=#6x}: {self}")
 * 
 *         if self.low > IoportconRange.MAX or self.high > IoportconRange.MAX:             # <<<<<<<<<<<<<<
 *             raise ValueError( f"Port numbers must be <= {IoportconRange.MAX:0=#6x}: {self}")
 * 
*/
  }

  /* "setools/policyrep/xencontext.pxi":53
 *             raise ValueError( f"Port numbers must be <= {IoportconRange.MAX:0=#6x}: {self}")
 * 
 *         if self.low > self.high:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"The low port must be smaller than the high port: {self}")
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(24, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/xencontext.pxi":54
 * 
 *         if self.low > self.high:
 *             raise ValueError(f"The low port must be smaller than the high port: {self}")             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
    __pyx_t_3 = NULL;
    __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_self, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 54, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_The_low_port_must_be_smaller_tha, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 54, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 54, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(24, 54, __pyx_L1_error)

    /* "setools/policyrep/xencontext.pxi":53
 *             raise ValueError( f"Port numbers must be <= {IoportconRange.MAX:0=#6x}: {self}")
 * 
 *         if self.low > self.high:             # <<<<<<<<<<<<<<
 *             raise ValueError(f"The low port must be smaller than the high port: {self}")
 * 
*/
  }

  /* "setools/policyrep/xencontext.pxi":46
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < IoportconRange.MIN or self.high < IoportconRange.MIN:
 *             raise ValueError(f"Port numbers must be >= {IoportconRange.MIN:0=#6x}: {self}")
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.IoportconRange.__post_init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":56
 *             raise ValueError(f"The low port must be smaller than the high port: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14IoportconRange_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_14IoportconRange_3__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14IoportconRange_3__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_14IoportconRange_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(24, 56, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 56, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(24, 56, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(24, 56, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 56, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(24, 56, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.IoportconRange.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_14IoportconRange_2__str__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14IoportconRange_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/xencontext.pxi":57
 * 
 *     def __str__(self):
 *         if self.low == self.high:             # <<<<<<<<<<<<<<
 *             return f"{self.low:0=#6x}"
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(24, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {

    /* "setools/policyrep/xencontext.pxi":58
 *     def __str__(self):
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"             # <<<<<<<<<<<<<<
 *         else:
 *             return f"{self.low:0=#6x}-{self.high:0=#6x}"
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_Format(__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/xencontext.pxi":57
 * 
 *     def __str__(self):
 *         if self.low == self.high:             # <<<<<<<<<<<<<<
 *             return f"{self.low:0=#6x}"
 *         else:
*/
  }

  /* "setools/policyrep/xencontext.pxi":60
 *             return f"{self.low:0=#6x}"
 *         else:
 *             return f"{self.low:0=#6x}-{self.high:0=#6x}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_Format(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_high); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_Format(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5[0] = __pyx_t_3;
    __pyx_t_5[1] = __pyx_mstate_global->__pyx_kp_u__20;
    __pyx_t_5[2] = __pyx_t_1;
    __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
    if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/xencontext.pxi":56
 *             raise ValueError(f"The low port must be smaller than the high port: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.IoportconRange.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":72
 *     cdef readonly str path
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Devicetreecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Devicetreecon objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_f_7setools_9policyrep_13Devicetreecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_d = 0;
  struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":75
 *     cdef inline Devicetreecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Devicetreecon objects."""
 *         cdef Devicetreecon d = Devicetreecon.__new__(Devicetreecon)             # <<<<<<<<<<<<<<
 *         d.policy = policy
 *         d.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Devicetreecon(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Devicetreecon), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 75, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_d = ((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":76
 *         """Factory function for creating Devicetreecon objects."""
 *         cdef Devicetreecon d = Devicetreecon.__new__(Devicetreecon)
 *         d.policy = policy             # <<<<<<<<<<<<<<
 *         d.key = <uintptr_t>symbol
 *         d.path = intern(symbol.u.name)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_d->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_d->__pyx_base.__pyx_base.policy);
  __pyx_v_d->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":77
 *         cdef Devicetreecon d = Devicetreecon.__new__(Devicetreecon)
 *         d.policy = policy
 *         d.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         d.path = intern(symbol.u.name)
 *         d.context = Context.factory(policy, symbol.context)
*/
  __pyx_v_d->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/xencontext.pxi":78
 *         d.policy = policy
 *         d.key = <uintptr_t>symbol
 *         d.path = intern(symbol.u.name)             # <<<<<<<<<<<<<<
 *         d.context = Context.factory(policy, symbol.context)
 *         return d
*/
  __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_symbol->u.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(24, 78, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_d->path);
  __Pyx_DECREF(__pyx_v_d->path);
  __pyx_v_d->path = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/xencontext.pxi":79
 *         d.key = <uintptr_t>symbol
 *         d.path = intern(symbol.u.name)
 *         d.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return d
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_d->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_d->__pyx_base.context);
  __pyx_v_d->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/xencontext.pxi":80
 *         d.path = intern(symbol.u.name)
 *         d.context = Context.factory(policy, symbol.context)
 *         return d             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_d);
  __pyx_r = __pyx_v_d;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":72
 *     cdef readonly str path
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Devicetreecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Devicetreecon objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Devicetreecon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_d);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":82
 *         return d
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"devicetreecon {self.path} {self.context}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13Devicetreecon_1statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Devicetreecon_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13Devicetreecon_statement(((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_statement(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[4];
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/xencontext.pxi":83
 * 
 *     def statement(self):
 *         return f"devicetreecon {self.path} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_self->path); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_devicetreecon;
  __pyx_t_3[1] = __pyx_t_1;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_3[3] = __pyx_t_2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, 14 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":82
 *         return d
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"devicetreecon {self.path} {self.context}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Devicetreecon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":70
 *     """A devicetreecon statement."""
 * 
 *     cdef readonly str path             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_4path_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_4path_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_13Devicetreecon_4path___get__(((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_4path___get__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->path);
  __pyx_r = __pyx_v_self->path;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13Devicetreecon_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Devicetreecon_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_13Devicetreecon_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.path, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->path);
  __Pyx_GIVEREF(__pyx_v_self->path);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->path) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.path, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.path, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.path is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.path, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.path is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0x9a01f0f, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->path != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.path is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0x9a01f0f, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.path is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0x9a01f0f, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0x9a01f0f, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Devicetreecon); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_161488655);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_161488655);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_161488655) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.path is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0x9a01f0f, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0x9a01f0f, None), state
 *     else:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0x9a01f0f, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Devicetreecon__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Devicetreecon); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_161488655);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_161488655);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_161488655) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Devicetreecon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0x9a01f0f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Devicetreecon__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13Devicetreecon_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Devicetreecon_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Devicetreecon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13Devicetreecon_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0x9a01f0f, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Devicetreecon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Devicetreecon__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0x9a01f0f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Devicetreecon__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Devicetreecon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":92
 *     cdef readonly object addr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Iomemcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Iomemcon objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_f_7setools_9policyrep_8Iomemcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_i = 0;
  struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":95
 *     cdef inline Iomemcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Iomemcon objects."""
 *         cdef Iomemcon i = Iomemcon.__new__(Iomemcon)             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Iomemcon(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Iomemcon), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 95, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":96
 *         """Factory function for creating Iomemcon objects."""
 *         cdef Iomemcon i = Iomemcon.__new__(Iomemcon)
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.key = <uintptr_t>symbol
 *         i.addr = IomemconRange(symbol.u.iomem.low_iomem, symbol.u.iomem.high_iomem)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":97
 *         cdef Iomemcon i = Iomemcon.__new__(Iomemcon)
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         i.addr = IomemconRange(symbol.u.iomem.low_iomem, symbol.u.iomem.high_iomem)
 *         i.context = Context.factory(policy, symbol.context)
*/
  __pyx_v_i->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/xencontext.pxi":98
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 *         i.addr = IomemconRange(symbol.u.iomem.low_iomem, symbol.u.iomem.high_iomem)             # <<<<<<<<<<<<<<
 *         i.context = Context.factory(policy, symbol.context)
 *         return i
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_IomemconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyLong_From_uint64_t(__pyx_v_symbol->u.iomem.low_iomem); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyLong_From_uint64_t(__pyx_v_symbol->u.iomem.high_iomem); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->addr);
  __Pyx_DECREF(__pyx_v_i->addr);
  __pyx_v_i->addr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":99
 *         i.key = <uintptr_t>symbol
 *         i.addr = IomemconRange(symbol.u.iomem.low_iomem, symbol.u.iomem.high_iomem)
 *         i.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.context);
  __pyx_v_i->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":100
 *         i.addr = IomemconRange(symbol.u.iomem.low_iomem, symbol.u.iomem.high_iomem)
 *         i.context = Context.factory(policy, symbol.context)
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = __pyx_v_i;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":92
 *     cdef readonly object addr
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Iomemcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Iomemcon objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Iomemcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":102
 *         return i
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"iomemcon {self.addr} {self.context}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Iomemcon_1statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Iomemcon_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8Iomemcon_statement(((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_statement(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[4];
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/xencontext.pxi":103
 * 
 *     def statement(self):
 *         return f"iomemcon {self.addr} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->addr, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_iomemcon;
  __pyx_t_3[1] = __pyx_t_1;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_3[3] = __pyx_t_2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, 9 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":102
 *         return i
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"iomemcon {self.addr} {self.context}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Iomemcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":90
 *     """A iomemcon statement."""
 * 
 *     cdef readonly object addr             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_4addr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_4addr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Iomemcon_4addr___get__(((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_4addr___get__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->addr);
  __pyx_r = __pyx_v_self->addr;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Iomemcon_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Iomemcon_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_8Iomemcon_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.addr, self.context, self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->addr);
  __Pyx_GIVEREF(__pyx_v_self->addr);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->addr) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.addr, self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.addr, self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.addr is not None or self.context is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.addr, self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.addr is not None or self.context is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x69ba798, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->addr != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.addr is not None or self.context is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x69ba798, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.addr is not None or self.context is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x69ba798, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x69ba798, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Iomemcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_110864280);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_110864280);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_110864280) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.addr is not None or self.context is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x69ba798, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x69ba798, None), state
 *     else:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x69ba798, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Iomemcon__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Iomemcon); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_110864280);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_110864280);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_110864280) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Iomemcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x69ba798, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Iomemcon__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8Iomemcon_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Iomemcon_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Iomemcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_8Iomemcon_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x69ba798, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Iomemcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Iomemcon__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x69ba798, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Iomemcon__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Iomemcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":112
 *     cdef readonly object ports
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Ioportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Ioportcon objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_f_7setools_9policyrep_9Ioportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_i = 0;
  struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":115
 *     cdef inline Ioportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Ioportcon objects."""
 *         cdef Ioportcon i = Ioportcon.__new__(Ioportcon)             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Ioportcon(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ioportcon), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 115, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":116
 *         """Factory function for creating Ioportcon objects."""
 *         cdef Ioportcon i = Ioportcon.__new__(Ioportcon)
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.key = <uintptr_t>symbol
 *         i.ports = IoportconRange(symbol.u.ioport.low_ioport, symbol.u.ioport.high_ioport)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":117
 *         cdef Ioportcon i = Ioportcon.__new__(Ioportcon)
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         i.ports = IoportconRange(symbol.u.ioport.low_ioport, symbol.u.ioport.high_ioport)
 *         i.context = Context.factory(policy, symbol.context)
*/
  __pyx_v_i->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/xencontext.pxi":118
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 *         i.ports = IoportconRange(symbol.u.ioport.low_ioport, symbol.u.ioport.high_ioport)             # <<<<<<<<<<<<<<
 *         i.context = Context.factory(policy, symbol.context)
 *         return i
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_IoportconRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyLong_From_uint32_t(__pyx_v_symbol->u.ioport.low_ioport); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyLong_From_uint32_t(__pyx_v_symbol->u.ioport.high_ioport); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->ports);
  __Pyx_DECREF(__pyx_v_i->ports);
  __pyx_v_i->ports = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":119
 *         i.key = <uintptr_t>symbol
 *         i.ports = IoportconRange(symbol.u.ioport.low_ioport, symbol.u.ioport.high_ioport)
 *         i.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.context);
  __pyx_v_i->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":120
 *         i.ports = IoportconRange(symbol.u.ioport.low_ioport, symbol.u.ioport.high_ioport)
 *         i.context = Context.factory(policy, symbol.context)
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = __pyx_v_i;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":112
 *     cdef readonly object ports
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Ioportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Ioportcon objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Ioportcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":122
 *         return i
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"ioportcon {self.ports} {self.context}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9Ioportcon_1statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ioportcon_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ioportcon_statement(((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_statement(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[4];
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/xencontext.pxi":123
 * 
 *     def statement(self):
 *         return f"ioportcon {self.ports} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->ports, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_ioportcon;
  __pyx_t_3[1] = __pyx_t_1;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_3[3] = __pyx_t_2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, 10 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":122
 *         return i
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"ioportcon {self.ports} {self.context}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Ioportcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":110
 *     """A ioportcon statement."""
 * 
 *     cdef readonly object ports             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_5ports_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_5ports_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ioportcon_5ports___get__(((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_5ports___get__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ports);
  __pyx_r = __pyx_v_self->ports;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9Ioportcon_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ioportcon_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ioportcon_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy, self.ports)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->ports);
  __Pyx_GIVEREF(__pyx_v_self->ports);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->ports) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy, self.ports)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy, self.ports)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy, self.ports)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0x8f4c806, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->ports != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ioportcon, (type(self), 0x8f4c806, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0x8f4c806, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0x8f4c806, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ioportcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_150259718);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_150259718);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_150259718) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ioportcon, (type(self), 0x8f4c806, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ioportcon, (type(self), 0x8f4c806, None), state
 *     else:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0x8f4c806, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ioportcon__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ioportcon); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_150259718);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_150259718);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_150259718) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Ioportcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0x8f4c806, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ioportcon__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9Ioportcon_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ioportcon_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Ioportcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ioportcon_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ioportcon, (type(self), 0x8f4c806, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ioportcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ioportcon__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0x8f4c806, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ioportcon__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Ioportcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":132
 *     cdef readonly object device
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Pcidevicecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Pcidevicecon objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_f_7setools_9policyrep_12Pcidevicecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_p = 0;
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":135
 *     cdef inline Pcidevicecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Pcidevicecon objects."""
 *         cdef Pcidevicecon p = Pcidevicecon.__new__(Pcidevicecon)             # <<<<<<<<<<<<<<
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Pcidevicecon(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pcidevicecon), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 135, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_p = ((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":136
 *         """Factory function for creating Pcidevicecon objects."""
 *         cdef Pcidevicecon p = Pcidevicecon.__new__(Pcidevicecon)
 *         p.policy = policy             # <<<<<<<<<<<<<<
 *         p.key = <uintptr_t>symbol
 *         p.device = symbol.u.device
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_p->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_p->__pyx_base.__pyx_base.policy);
  __pyx_v_p->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":137
 *         cdef Pcidevicecon p = Pcidevicecon.__new__(Pcidevicecon)
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         p.device = symbol.u.device
 *         p.context = Context.factory(policy, symbol.context)
*/
  __pyx_v_p->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/xencontext.pxi":138
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
 *         p.device = symbol.u.device             # <<<<<<<<<<<<<<
 *         p.context = Context.factory(policy, symbol.context)
 *         return p
*/
  __pyx_t_1 = __Pyx_PyLong_From_uint32_t(__pyx_v_symbol->u.device); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_p->device);
  __Pyx_DECREF(__pyx_v_p->device);
  __pyx_v_p->device = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":139
 *         p.key = <uintptr_t>symbol
 *         p.device = symbol.u.device
 *         p.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return p
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_p->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_p->__pyx_base.context);
  __pyx_v_p->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":140
 *         p.device = symbol.u.device
 *         p.context = Context.factory(policy, symbol.context)
 *         return p             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_p);
  __pyx_r = __pyx_v_p;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":132
 *     cdef readonly object device
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Pcidevicecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Pcidevicecon objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Pcidevicecon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_p);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":142
 *         return p
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"pcidevicecon {self.device:0=#6x} {self.context}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12Pcidevicecon_1statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Pcidevicecon_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12Pcidevicecon_statement(((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_statement(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[4];
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/xencontext.pxi":143
 * 
 *     def statement(self):
 *         return f"pcidevicecon {self.device:0=#6x} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_Format(__pyx_v_self->device, __pyx_mstate_global->__pyx_kp_u_0_6x); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_pcidevicecon;
  __pyx_t_3[1] = __pyx_t_1;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_3[3] = __pyx_t_2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":142
 *         return p
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"pcidevicecon {self.device:0=#6x} {self.context}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Pcidevicecon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":130
 *     """A pcidevicecon statement."""
 * 
 *     cdef readonly object device             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_6device_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_6device_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Pcidevicecon_6device___get__(((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_6device___get__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->device);
  __pyx_r = __pyx_v_self->device;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12Pcidevicecon_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Pcidevicecon_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_12Pcidevicecon_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.device, self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->device);
  __Pyx_GIVEREF(__pyx_v_self->device);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->device) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.device, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.device, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.device is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.device, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.device is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0xa2b1ad7, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->device != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.device is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0xa2b1ad7, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.device is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0xa2b1ad7, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0xa2b1ad7, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Pcidevicecon); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_170597079);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_170597079);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_170597079) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.device is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0xa2b1ad7, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0xa2b1ad7, None), state
 *     else:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0xa2b1ad7, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Pcidevicecon__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Pcidevicecon); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_170597079);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_170597079);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_170597079) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Pcidevicecon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0xa2b1ad7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Pcidevicecon__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12Pcidevicecon_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Pcidevicecon_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Pcidevicecon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12Pcidevicecon_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0xa2b1ad7, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Pcidevicecon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Pcidevicecon__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0xa2b1ad7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Pcidevicecon__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Pcidevicecon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":152
 *     cdef readonly object irq
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Pirqcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Pirqcon objects."""
*/

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_f_7setools_9policyrep_7Pirqcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_p = 0;
  struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":155
 *     cdef inline Pirqcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Pirqcon objects."""
 *         cdef Pirqcon p = Pirqcon.__new__(Pirqcon)             # <<<<<<<<<<<<<<
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Pirqcon(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pirqcon), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 155, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_p = ((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":156
 *         """Factory function for creating Pirqcon objects."""
 *         cdef Pirqcon p = Pirqcon.__new__(Pirqcon)
 *         p.policy = policy             # <<<<<<<<<<<<<<
 *         p.key = <uintptr_t>symbol
 *         p.irq = symbol.u.pirq
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_p->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_p->__pyx_base.__pyx_base.policy);
  __pyx_v_p->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":157
 *         cdef Pirqcon p = Pirqcon.__new__(Pirqcon)
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         p.irq = symbol.u.pirq
 *         p.context = Context.factory(policy, symbol.context)
*/
  __pyx_v_p->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/xencontext.pxi":158
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
 *         p.irq = symbol.u.pirq             # <<<<<<<<<<<<<<
 *         p.context = Context.factory(policy, symbol.context)
 *         return p
*/
  __pyx_t_1 = __Pyx_PyLong_From_uint16_t(__pyx_v_symbol->u.pirq); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_p->irq);
  __Pyx_DECREF(__pyx_v_p->irq);
  __pyx_v_p->irq = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":159
 *         p.key = <uintptr_t>symbol
 *         p.irq = symbol.u.pirq
 *         p.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return p
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_p->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v_p->__pyx_base.context);
  __pyx_v_p->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":160
 *         p.irq = symbol.u.pirq
 *         p.context = Context.factory(policy, symbol.context)
 *         return p             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_p);
  __pyx_r = __pyx_v_p;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":152
 *     cdef readonly object irq
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef inline Pirqcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Pirqcon objects."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Pirqcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_p);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":162
 *         return p
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"pirqcon {self.irq} {self.context}"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Pirqcon_1statement = {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Pirqcon_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_1statement(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("statement", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("statement", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Pirqcon_statement(((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_statement(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[4];
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/xencontext.pxi":163
 * 
 *     def statement(self):
 *         return f"pirqcon {self.irq} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_self->irq, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self->__pyx_base.context), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_pirqcon;
  __pyx_t_3[1] = __pyx_t_1;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_3[3] = __pyx_t_2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":162
 *         return p
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"pirqcon {self.irq} {self.context}"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Pirqcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":150
 *     """A pirqcon statement."""
 * 
 *     cdef readonly object irq             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_3irq_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_3irq_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Pirqcon_3irq___get__(((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_3irq___get__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->irq);
  __pyx_r = __pyx_v_self->irq;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Pirqcon_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Pirqcon_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_7Pirqcon_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.irq, self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->irq);
  __Pyx_GIVEREF(__pyx_v_self->irq);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->irq) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy)) != (0)) __PYX_ERR(7, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.irq, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.irq, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(7, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(7, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.irq is not None or self.policy is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.irq, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.irq is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0x679ce62, None), state
*/
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->irq != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.irq is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Pirqcon, (type(self), 0x679ce62, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.irq is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0x679ce62, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0x679ce62, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Pirqcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_108645986);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_108645986);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_108645986) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.irq is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Pirqcon, (type(self), 0x679ce62, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Pirqcon, (type(self), 0x679ce62, None), state
 *     else:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0x679ce62, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Pirqcon__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Pirqcon); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_108645986);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_108645986);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_108645986) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(7, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Pirqcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0x679ce62, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Pirqcon__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7Pirqcon_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Pirqcon_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.Pirqcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_7Pirqcon_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Pirqcon, (type(self), 0x679ce62, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Pirqcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(7, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(7, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Pirqcon__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0x679ce62, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Pirqcon__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Pirqcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":173
 *     """Iterator for devicetreecon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Devicetreecon iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_21DevicetreeconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":176
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Devicetreecon iterators."""
 *         i = DevicetreeconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 176, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":177
 *         """Factory function for creating Devicetreecon iterators."""
 *         i = DevicetreeconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":178
 *         i = DevicetreeconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/xencontext.pxi":179
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":173
 *     """Iterator for devicetreecon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Devicetreecon iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.DevicetreeconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":181
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Devicetreecon.factory(self.policy, self.ocon)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_21DevicetreeconIterator___next__(((struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator___next__(struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/xencontext.pxi":182
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Devicetreecon.factory(self.policy, self.ocon)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 182, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 182, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":183
 *     def __next__(self):
 *         super().__next__()
 *         return Devicetreecon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_13Devicetreecon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":181
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Devicetreecon.factory(self.policy, self.ocon)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.DevicetreeconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_21DevicetreeconIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_21DevicetreeconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.DevicetreeconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_21DevicetreeconIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.DevicetreeconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_21DevicetreeconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.DevicetreeconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":190
 *     """Iterator for iomemcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Iomemcon iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_16IomemconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":193
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Iomemcon iterators."""
 *         i = IomemconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IomemconIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 193, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_IomemconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":194
 *         """Factory function for creating Iomemcon iterators."""
 *         i = IomemconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":195
 *         i = IomemconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/xencontext.pxi":196
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":190
 *     """Iterator for iomemcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Iomemcon iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.IomemconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":198
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Iomemcon.factory(self.policy, self.ocon)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_16IomemconIterator___next__(((struct __pyx_obj_7setools_9policyrep_IomemconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator___next__(struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/xencontext.pxi":199
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Iomemcon.factory(self.policy, self.ocon)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IomemconIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":200
 *     def __next__(self):
 *         super().__next__()
 *         return Iomemcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_8Iomemcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":198
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Iomemcon.factory(self.policy, self.ocon)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.IomemconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_16IomemconIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16IomemconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_16IomemconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_IomemconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.IomemconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_16IomemconIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16IomemconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.IomemconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_16IomemconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_IomemconIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.IomemconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":207
 *     """Iterator for ioportcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ioportcon iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_17IoportconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":210
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ioportcon iterators."""
 *         i = IoportconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IoportconIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 210, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_IoportconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":211
 *         """Factory function for creating Ioportcon iterators."""
 *         i = IoportconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":212
 *         i = IoportconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/xencontext.pxi":213
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":207
 *     """Iterator for ioportcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ioportcon iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.IoportconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":215
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ioportcon.factory(self.policy, self.ocon)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_17IoportconIterator___next__(((struct __pyx_obj_7setools_9policyrep_IoportconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator___next__(struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/xencontext.pxi":216
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Ioportcon.factory(self.policy, self.ocon)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IoportconIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":217
 *     def __next__(self):
 *         super().__next__()
 *         return Ioportcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_9Ioportcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":215
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ioportcon.factory(self.policy, self.ocon)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.IoportconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_17IoportconIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17IoportconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_17IoportconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_IoportconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.IoportconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_17IoportconIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17IoportconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.IoportconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_17IoportconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_IoportconIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.IoportconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":224
 *     """Iterator for pcidevicecon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Pcidevicecon iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_20PcideviceconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":227
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Pcidevicecon iterators."""
 *         i = PcideviceconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PcideviceconIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 227, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":228
 *         """Factory function for creating Pcidevicecon iterators."""
 *         i = PcideviceconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":229
 *         i = PcideviceconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/xencontext.pxi":230
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":224
 *     """Iterator for pcidevicecon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Pcidevicecon iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PcideviceconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":232
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Pcidevicecon.factory(self.policy, self.ocon)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_20PcideviceconIterator___next__(((struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator___next__(struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/xencontext.pxi":233
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Pcidevicecon.factory(self.policy, self.ocon)
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PcideviceconIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 233, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 233, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":234
 *     def __next__(self):
 *         super().__next__()
 *         return Pcidevicecon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_12Pcidevicecon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":232
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Pcidevicecon.factory(self.policy, self.ocon)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.PcideviceconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_20PcideviceconIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20PcideviceconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_20PcideviceconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PcideviceconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_20PcideviceconIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20PcideviceconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PcideviceconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_20PcideviceconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PcideviceconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":241
 *     """Iterator for pirqcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Pirqcon iterators."""
*/

static PyObject *__pyx_f_7setools_9policyrep_15PirqconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":244
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Pirqcon iterators."""
 *         i = PirqconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PirqconIterator, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 244, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_PirqconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":245
 *         """Factory function for creating Pirqcon iterators."""
 *         i = PirqconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
*/
  __Pyx_INCREF((PyObject *)__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_v_policy);
  __Pyx_GOTREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy);
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":246
 *         i = PirqconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
*/
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/xencontext.pxi":247
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_i);
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":241
 *     """Iterator for pirqcon statements in the policy."""
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Pirqcon iterators."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PirqconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":249
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Pirqcon.factory(self.policy, self.ocon)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_15PirqconIterator___next__(((struct __pyx_obj_7setools_9policyrep_PirqconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator___next__(struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/xencontext.pxi":250
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Pirqcon.factory(self.policy, self.ocon)
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PirqconIterator), ((PyObject *)__pyx_v_self)};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_super, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":251
 *     def __next__(self):
 *         super().__next__()
 *         return Pirqcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_7Pirqcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":249
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Pirqcon.factory(self.policy, self.ocon)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.PirqconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15PirqconIterator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15PirqconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7setools_9policyrep_15PirqconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PirqconIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PirqconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15PirqconIterator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15PirqconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(7, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(7, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.PirqconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_15PirqconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PirqconIterator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_curr_self_head_self_ocon_ca, 0, 0);
  __PYX_ERR(7, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PirqconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Boolean(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2fa4582, 0x1b05210, 0x64345df, b'key, name, policy, state')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_3__pyx_unpickle_Boolean(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_3__pyx_unpickle_Boolean = {"__pyx_unpickle_Boolean", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_3__pyx_unpickle_Boolean, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_3__pyx_unpickle_Boolean(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Boolean (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Boolean", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Boolean", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Boolean", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Boolean", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_2__pyx_unpickle_Boolean(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_2__pyx_unpickle_Boolean(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Boolean", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Boolean(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2fa4582, 0x1b05210, 0x64345df, b'key, name, policy, state')             # <<<<<<<<<<<<<<
 *     __pyx_result = Boolean.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x2fa4582, 0x1b05210, 0x64345df, __pyx_k_key_name_policy_state); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2fa4582, 0x1b05210, 0x64345df, b'key, name, policy, state')
 *     __pyx_result = Boolean.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Boolean);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2fa4582, 0x1b05210, 0x64345df, b'key, name, policy, state')
 *     __pyx_result = Boolean.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Boolean.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Boolean__set_state(((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2fa4582, 0x1b05210, 0x64345df, b'key, name, policy, state')
 *     __pyx_result = Boolean.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Boolean(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2fa4582, 0x1b05210, 0x64345df, b'key, name, policy, state')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Boolean", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Boolean__set_state(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Boolean__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->state = __pyx_t_3;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Boolean__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Conditional(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9d7ad19, 0x063184c, 0x2cdc21b, b'_postfix_expression, booleans, key, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5__pyx_unpickle_Conditional(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_5__pyx_unpickle_Conditional = {"__pyx_unpickle_Conditional", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5__pyx_unpickle_Conditional, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_5__pyx_unpickle_Conditional(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Conditional (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Conditional", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Conditional", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Conditional", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Conditional", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_4__pyx_unpickle_Conditional(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_4__pyx_unpickle_Conditional(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Conditional", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Conditional(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9d7ad19, 0x063184c, 0x2cdc21b, b'_postfix_expression, booleans, key, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Conditional.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x9d7ad19, 0x063184c, 0x2cdc21b, __pyx_k_postfix_expression_booleans_key); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9d7ad19, 0x063184c, 0x2cdc21b, b'_postfix_expression, booleans, key, policy')
 *     __pyx_result = Conditional.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9d7ad19, 0x063184c, 0x2cdc21b, b'_postfix_expression, booleans, key, policy')
 *     __pyx_result = Conditional.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Conditional.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Conditional__set_state(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9d7ad19, 0x063184c, 0x2cdc21b, b'_postfix_expression, booleans, key, policy')
 *     __pyx_result = Conditional.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, __pyx_state: tuple):
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Conditional(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9d7ad19, 0x063184c, 0x2cdc21b, b'_postfix_expression, booleans, key, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Conditional", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Conditional__set_state(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Conditional__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, __pyx_state: tuple):
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_postfix_expression);
  __Pyx_DECREF(__pyx_v___pyx_result->_postfix_expression);
  __pyx_v___pyx_result->_postfix_expression = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("frozenset", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->booleans);
  __Pyx_DECREF(__pyx_v___pyx_result->booleans);
  __pyx_v___pyx_result->booleans = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, __pyx_state: tuple):
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Conditional__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_ConditionalOperator(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x60d06d1, 0x114ed25, 0xeda7b2a, b'evaluate, key, policy, precedence, text, unary')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7__pyx_unpickle_ConditionalOperator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7__pyx_unpickle_ConditionalOperator = {"__pyx_unpickle_ConditionalOperator", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7__pyx_unpickle_ConditionalOperator, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7__pyx_unpickle_ConditionalOperator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConditionalOperator (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_ConditionalOperator", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConditionalOperator", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConditionalOperator", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConditionalOperator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_6__pyx_unpickle_ConditionalOperator(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_6__pyx_unpickle_ConditionalOperator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConditionalOperator", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_ConditionalOperator(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x60d06d1, 0x114ed25, 0xeda7b2a, b'evaluate, key, policy, precedence, text, unary')             # <<<<<<<<<<<<<<
 *     __pyx_result = ConditionalOperator.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x60d06d1, 0x114ed25, 0xeda7b2a, __pyx_k_evaluate_key_policy_precedence_t); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x60d06d1, 0x114ed25, 0xeda7b2a, b'evaluate, key, policy, precedence, text, unary')
 *     __pyx_result = ConditionalOperator.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalOperator);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x60d06d1, 0x114ed25, 0xeda7b2a, b'evaluate, key, policy, precedence, text, unary')
 *     __pyx_result = ConditionalOperator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = ConditionalOperator.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConditionalOperator__set_state(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x60d06d1, 0x114ed25, 0xeda7b2a, b'evaluate, key, policy, precedence, text, unary')
 *     __pyx_result = ConditionalOperator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, __pyx_state: tuple):
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_ConditionalOperator(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x60d06d1, 0x114ed25, 0xeda7b2a, b'evaluate, key, policy, precedence, text, unary')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConditionalOperator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConditionalOperator__set_state(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConditionalOperator__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, __pyx_state: tuple):
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->evaluate);
  __Pyx_DECREF(__pyx_v___pyx_result->evaluate);
  __pyx_v___pyx_result->evaluate = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->precedence = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->text);
  __Pyx_DECREF(__pyx_v___pyx_result->text);
  __pyx_v___pyx_result->text = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->unary = __pyx_t_4;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, __pyx_state: tuple):
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConditionalOperator__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Bounds(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c46613, 0xa13b7ca, 0x181e932, b'child, key, parent, policy, ruletype')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9__pyx_unpickle_Bounds(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9__pyx_unpickle_Bounds = {"__pyx_unpickle_Bounds", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9__pyx_unpickle_Bounds, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9__pyx_unpickle_Bounds(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Bounds (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Bounds", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Bounds", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Bounds", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Bounds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_8__pyx_unpickle_Bounds(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_8__pyx_unpickle_Bounds(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Bounds", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Bounds(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c46613, 0xa13b7ca, 0x181e932, b'child, key, parent, policy, ruletype')             # <<<<<<<<<<<<<<
 *     __pyx_result = Bounds.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x4c46613, 0xa13b7ca, 0x181e932, __pyx_k_child_key_parent_policy_ruletype); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c46613, 0xa13b7ca, 0x181e932, b'child, key, parent, policy, ruletype')
 *     __pyx_result = Bounds.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Bounds);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c46613, 0xa13b7ca, 0x181e932, b'child, key, parent, policy, ruletype')
 *     __pyx_result = Bounds.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Bounds.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Bounds__set_state(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c46613, 0xa13b7ca, 0x181e932, b'child, key, parent, policy, ruletype')
 *     __pyx_result = Bounds.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, __pyx_state: tuple):
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Bounds(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c46613, 0xa13b7ca, 0x181e932, b'child, key, parent, policy, ruletype')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Bounds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Bounds__set_state(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Bounds__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, __pyx_state: tuple):
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->child);
  __Pyx_DECREF(__pyx_v___pyx_result->child);
  __pyx_v___pyx_result->child = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->parent);
  __Pyx_DECREF(__pyx_v___pyx_result->parent);
  __pyx_v___pyx_result->parent = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->ruletype);
  __pyx_v___pyx_result->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, __pyx_state: tuple):
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Bounds__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_BaseConstraint(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11__pyx_unpickle_BaseConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_11__pyx_unpickle_BaseConstraint = {"__pyx_unpickle_BaseConstraint", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11__pyx_unpickle_BaseConstraint, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_11__pyx_unpickle_BaseConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseConstraint (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_BaseConstraint", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseConstraint", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseConstraint", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_10__pyx_unpickle_BaseConstraint(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_10__pyx_unpickle_BaseConstraint(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseConstraint", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_BaseConstraint(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = BaseConstraint.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, __pyx_k_expression_key_policy_ruletype_t); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
 *     __pyx_result = BaseConstraint.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseConstraint);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
 *     __pyx_result = BaseConstraint.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = BaseConstraint.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseConstraint__set_state(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
 *     __pyx_result = BaseConstraint.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, __pyx_state: tuple):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_BaseConstraint(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseConstraint__set_state(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseConstraint__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, __pyx_state: tuple):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExpression))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->expression);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->expression);
  __pyx_v___pyx_result->expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->ruletype);
  __pyx_v___pyx_result->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->tclass);
  __Pyx_DECREF(__pyx_v___pyx_result->tclass);
  __pyx_v___pyx_result->tclass = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, __pyx_state: tuple):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseConstraint__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Constraint(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x948236a, 0x9da2d51, 0x3815b7b, b'expression, key, perms, policy, ruletype, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13__pyx_unpickle_Constraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13__pyx_unpickle_Constraint = {"__pyx_unpickle_Constraint", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13__pyx_unpickle_Constraint, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13__pyx_unpickle_Constraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Constraint (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Constraint", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Constraint", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Constraint", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Constraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_12__pyx_unpickle_Constraint(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_12__pyx_unpickle_Constraint(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Constraint", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Constraint(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x948236a, 0x9da2d51, 0x3815b7b, b'expression, key, perms, policy, ruletype, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = Constraint.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x948236a, 0x9da2d51, 0x3815b7b, __pyx_k_expression_key_perms_policy_rule); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x948236a, 0x9da2d51, 0x3815b7b, b'expression, key, perms, policy, ruletype, tclass')
 *     __pyx_result = Constraint.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Constraint);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x948236a, 0x9da2d51, 0x3815b7b, b'expression, key, perms, policy, ruletype, tclass')
 *     __pyx_result = Constraint.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Constraint.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Constraint__set_state(((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x948236a, 0x9da2d51, 0x3815b7b, b'expression, key, perms, policy, ruletype, tclass')
 *     __pyx_result = Constraint.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, __pyx_state: tuple):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Constraint(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x948236a, 0x9da2d51, 0x3815b7b, b'expression, key, perms, policy, ruletype, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Constraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Constraint__set_state(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Constraint__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, __pyx_state: tuple):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExpression))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.expression);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.expression);
  __pyx_v___pyx_result->__pyx_base.expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("frozenset", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->perms);
  __Pyx_DECREF(__pyx_v___pyx_result->perms);
  __pyx_v___pyx_result->perms = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __pyx_v___pyx_result->__pyx_base.tclass = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, __pyx_state: tuple):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Constraint__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Validatetrans(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15__pyx_unpickle_Validatetrans(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15__pyx_unpickle_Validatetrans = {"__pyx_unpickle_Validatetrans", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15__pyx_unpickle_Validatetrans, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15__pyx_unpickle_Validatetrans(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Validatetrans (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Validatetrans", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Validatetrans", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Validatetrans", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Validatetrans", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_14__pyx_unpickle_Validatetrans(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_14__pyx_unpickle_Validatetrans(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Validatetrans", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Validatetrans(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = Validatetrans.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, __pyx_k_expression_key_policy_ruletype_t); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
 *     __pyx_result = Validatetrans.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Validatetrans);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
 *     __pyx_result = Validatetrans.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Validatetrans.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Validatetrans__set_state(((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
 *     __pyx_result = Validatetrans.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, __pyx_state: tuple):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Validatetrans(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Validatetrans", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Validatetrans__set_state(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Validatetrans__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, __pyx_state: tuple):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExpression))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.expression);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.expression);
  __pyx_v___pyx_result->__pyx_base.expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __pyx_v___pyx_result->__pyx_base.tclass = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, __pyx_state: tuple):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Validatetrans__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_ConstraintExpression(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xcf964d8, 0xa4f22e2, 0x399ea0b, b'_infix, _postfix, key, mls, policy, roles, types, users')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17__pyx_unpickle_ConstraintExpression(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_17__pyx_unpickle_ConstraintExpression = {"__pyx_unpickle_ConstraintExpression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17__pyx_unpickle_ConstraintExpression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_17__pyx_unpickle_ConstraintExpression(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExpression (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_ConstraintExpression", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConstraintExpression", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConstraintExpression", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExpression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_16__pyx_unpickle_ConstraintExpression(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_16__pyx_unpickle_ConstraintExpression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExpression", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_ConstraintExpression(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xcf964d8, 0xa4f22e2, 0x399ea0b, b'_infix, _postfix, key, mls, policy, roles, types, users')             # <<<<<<<<<<<<<<
 *     __pyx_result = ConstraintExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xcf964d8, 0xa4f22e2, 0x399ea0b, __pyx_k_infix__postfix_key_mls_policy_r); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xcf964d8, 0xa4f22e2, 0x399ea0b, b'_infix, _postfix, key, mls, policy, roles, types, users')
 *     __pyx_result = ConstraintExpression.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExpression);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xcf964d8, 0xa4f22e2, 0x399ea0b, b'_infix, _postfix, key, mls, policy, roles, types, users')
 *     __pyx_result = ConstraintExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = ConstraintExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExpression__set_state(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xcf964d8, 0xa4f22e2, 0x399ea0b, b'_infix, _postfix, key, mls, policy, roles, types, users')
 *     __pyx_result = ConstraintExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, __pyx_state: tuple):
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_ConstraintExpression(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xcf964d8, 0xa4f22e2, 0x399ea0b, b'_infix, _postfix, key, mls, policy, roles, types, users')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExpression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 8)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExpression__set_state(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExpression__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, __pyx_state: tuple):
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 8)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_infix);
  __Pyx_DECREF(__pyx_v___pyx_result->_infix);
  __pyx_v___pyx_result->_infix = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_postfix);
  __Pyx_DECREF(__pyx_v___pyx_result->_postfix);
  __pyx_v___pyx_result->_postfix = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->mls = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("frozenset", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->roles);
  __Pyx_DECREF(__pyx_v___pyx_result->roles);
  __pyx_v___pyx_result->roles = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("frozenset", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->types);
  __Pyx_DECREF(__pyx_v___pyx_result->types);
  __pyx_v___pyx_result->types = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("frozenset", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->users);
  __Pyx_DECREF(__pyx_v___pyx_result->users);
  __pyx_v___pyx_result->users = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, __pyx_state: tuple):
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 8)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 8); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 8)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExpression__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_ConstraintExprNode(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x74e0c7a, 0xe0fb366, 0x786ca01, b'_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19__pyx_unpickle_ConstraintExprNode(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19__pyx_unpickle_ConstraintExprNode = {"__pyx_unpickle_ConstraintExprNode", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19__pyx_unpickle_ConstraintExprNode, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19__pyx_unpickle_ConstraintExprNode(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExprNode (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_ConstraintExprNode", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConstraintExprNode", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConstraintExprNode", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExprNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_18__pyx_unpickle_ConstraintExprNode(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_18__pyx_unpickle_ConstraintExprNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExprNode", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_ConstraintExprNode(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x74e0c7a, 0xe0fb366, 0x786ca01, b'_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users')             # <<<<<<<<<<<<<<
 *     __pyx_result = ConstraintExprNode.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x74e0c7a, 0xe0fb366, 0x786ca01, __pyx_k_expression__names__symbol_type); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x74e0c7a, 0xe0fb366, 0x786ca01, b'_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users')
 *     __pyx_result = ConstraintExprNode.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x74e0c7a, 0xe0fb366, 0x786ca01, b'_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users')
 *     __pyx_result = ConstraintExprNode.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = ConstraintExprNode.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExprNode__set_state(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x74e0c7a, 0xe0fb366, 0x786ca01, b'_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users')
 *     __pyx_result = ConstraintExprNode.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, __pyx_state: tuple):
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_ConstraintExprNode(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x74e0c7a, 0xe0fb366, 0x786ca01, b'_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExprNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 11)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExprNode__set_state(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExprNode__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, __pyx_state: tuple):
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 11)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_expression);
  __Pyx_DECREF(__pyx_v___pyx_result->_expression);
  __pyx_v___pyx_result->_expression = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("frozenset", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_names);
  __Pyx_DECREF(__pyx_v___pyx_result->_names);
  __pyx_v___pyx_result->_names = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->_symbol_type = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->expression_type = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->mls = __pyx_t_4;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_operator = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->roles = __pyx_t_4;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->types = __pyx_t_4;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->users = __pyx_t_4;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, __pyx_state: tuple):
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 11)             # <<<<<<<<<<<<<<
*/
  __pyx_t_5 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 11); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 11)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExprNode__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Context(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x50dd136, 0xe2393bf, 0xf33319d, b'_range, key, policy, role, type_, user')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21__pyx_unpickle_Context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_21__pyx_unpickle_Context = {"__pyx_unpickle_Context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21__pyx_unpickle_Context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_21__pyx_unpickle_Context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Context", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Context", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Context", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_20__pyx_unpickle_Context(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_20__pyx_unpickle_Context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Context", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Context(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x50dd136, 0xe2393bf, 0xf33319d, b'_range, key, policy, role, type_, user')             # <<<<<<<<<<<<<<
 *     __pyx_result = Context.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x50dd136, 0xe2393bf, 0xf33319d, __pyx_k_range_key_policy_role_type__use); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x50dd136, 0xe2393bf, 0xf33319d, b'_range, key, policy, role, type_, user')
 *     __pyx_result = Context.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x50dd136, 0xe2393bf, 0xf33319d, b'_range, key, policy, role, type_, user')
 *     __pyx_result = Context.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Context.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Context__set_state(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x50dd136, 0xe2393bf, 0xf33319d, b'_range, key, policy, role, type_, user')
 *     __pyx_result = Context.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, __pyx_state: tuple):
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Context(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x50dd136, 0xe2393bf, 0xf33319d, b'_range, key, policy, role, type_, user')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Context__set_state(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Context__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, __pyx_state: tuple):
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_range);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_range);
  __pyx_v___pyx_result->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Role))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->role);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->role);
  __pyx_v___pyx_result->role = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->type_);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->type_);
  __pyx_v___pyx_result->type_ = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_User))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->user);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->user);
  __pyx_v___pyx_result->user = ((struct __pyx_obj_7setools_9policyrep_User *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, __pyx_state: tuple):
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Context__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Default(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x685e83e, 0x6d2d570, 0xa55c637, b'_default, key, policy, ruletype, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23__pyx_unpickle_Default(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_23__pyx_unpickle_Default = {"__pyx_unpickle_Default", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23__pyx_unpickle_Default, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_23__pyx_unpickle_Default(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Default (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Default", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Default", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Default", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Default", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_22__pyx_unpickle_Default(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_22__pyx_unpickle_Default(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Default", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Default(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x685e83e, 0x6d2d570, 0xa55c637, b'_default, key, policy, ruletype, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = Default.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x685e83e, 0x6d2d570, 0xa55c637, __pyx_k_default_key_policy_ruletype_tcl); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x685e83e, 0x6d2d570, 0xa55c637, b'_default, key, policy, ruletype, tclass')
 *     __pyx_result = Default.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Default);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x685e83e, 0x6d2d570, 0xa55c637, b'_default, key, policy, ruletype, tclass')
 *     __pyx_result = Default.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Default.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Default__set_state(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x685e83e, 0x6d2d570, 0xa55c637, b'_default, key, policy, ruletype, tclass')
 *     __pyx_result = Default.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, __pyx_state: tuple):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Default(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x685e83e, 0x6d2d570, 0xa55c637, b'_default, key, policy, ruletype, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Default", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Default__set_state(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Default__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, __pyx_state: tuple):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_default);
  __Pyx_DECREF(__pyx_v___pyx_result->_default);
  __pyx_v___pyx_result->_default = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->ruletype);
  __pyx_v___pyx_result->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->tclass);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->tclass);
  __pyx_v___pyx_result->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, __pyx_state: tuple):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Default__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_DefaultRange(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3c0426, 0x7ca80bd, 0xaab4df4, b'_default, default_range, key, policy, ruletype, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25__pyx_unpickle_DefaultRange(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_25__pyx_unpickle_DefaultRange = {"__pyx_unpickle_DefaultRange", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_25__pyx_unpickle_DefaultRange, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_25__pyx_unpickle_DefaultRange(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_DefaultRange (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_DefaultRange", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_DefaultRange", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_DefaultRange", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_DefaultRange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_24__pyx_unpickle_DefaultRange(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_24__pyx_unpickle_DefaultRange(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_DefaultRange", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_DefaultRange(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3c0426, 0x7ca80bd, 0xaab4df4, b'_default, default_range, key, policy, ruletype, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = DefaultRange.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xe3c0426, 0x7ca80bd, 0xaab4df4, __pyx_k_default_default_range_key_polic); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3c0426, 0x7ca80bd, 0xaab4df4, b'_default, default_range, key, policy, ruletype, tclass')
 *     __pyx_result = DefaultRange.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_DefaultRange);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3c0426, 0x7ca80bd, 0xaab4df4, b'_default, default_range, key, policy, ruletype, tclass')
 *     __pyx_result = DefaultRange.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = DefaultRange.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_DefaultRange__set_state(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3c0426, 0x7ca80bd, 0xaab4df4, b'_default, default_range, key, policy, ruletype, tclass')
 *     __pyx_result = DefaultRange.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, __pyx_state: tuple):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_DefaultRange(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3c0426, 0x7ca80bd, 0xaab4df4, b'_default, default_range, key, policy, ruletype, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_DefaultRange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_DefaultRange__set_state(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_DefaultRange__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, __pyx_state: tuple):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._default);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base._default);
  __pyx_v___pyx_result->__pyx_base._default = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->default_range);
  __Pyx_DECREF(__pyx_v___pyx_result->default_range);
  __pyx_v___pyx_result->default_range = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass);
  __pyx_v___pyx_result->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, __pyx_state: tuple):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_DefaultRange__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_FSUse(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xdf395a0, 0x0aca751, 0xdc51194, b'context, fs, key, policy, ruletype')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_27__pyx_unpickle_FSUse(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_27__pyx_unpickle_FSUse = {"__pyx_unpickle_FSUse", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_27__pyx_unpickle_FSUse, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_27__pyx_unpickle_FSUse(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_FSUse (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_FSUse", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FSUse", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FSUse", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FSUse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_26__pyx_unpickle_FSUse(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_26__pyx_unpickle_FSUse(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_FSUse", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_FSUse(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xdf395a0, 0x0aca751, 0xdc51194, b'context, fs, key, policy, ruletype')             # <<<<<<<<<<<<<<
 *     __pyx_result = FSUse.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xdf395a0, 0x0aca751, 0xdc51194, __pyx_k_context_fs_key_policy_ruletype); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xdf395a0, 0x0aca751, 0xdc51194, b'context, fs, key, policy, ruletype')
 *     __pyx_result = FSUse.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FSUse);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xdf395a0, 0x0aca751, 0xdc51194, b'context, fs, key, policy, ruletype')
 *     __pyx_result = FSUse.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = FSUse.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_FSUse__set_state(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xdf395a0, 0x0aca751, 0xdc51194, b'context, fs, key, policy, ruletype')
 *     __pyx_result = FSUse.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_FSUse(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xdf395a0, 0x0aca751, 0xdc51194, b'context, fs, key, policy, ruletype')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FSUse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_FSUse__set_state(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_FSUse__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->fs);
  __Pyx_DECREF(__pyx_v___pyx_result->fs);
  __pyx_v___pyx_result->fs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->ruletype);
  __pyx_v___pyx_result->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FSUse__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_GenfsFiletype(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_29__pyx_unpickle_GenfsFiletype(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_29__pyx_unpickle_GenfsFiletype = {"__pyx_unpickle_GenfsFiletype", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_29__pyx_unpickle_GenfsFiletype, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_29__pyx_unpickle_GenfsFiletype(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_GenfsFiletype (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_GenfsFiletype", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_GenfsFiletype", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_GenfsFiletype", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_GenfsFiletype", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_28__pyx_unpickle_GenfsFiletype(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_28__pyx_unpickle_GenfsFiletype(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_GenfsFiletype", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_GenfsFiletype(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')             # <<<<<<<<<<<<<<
 *     __pyx_result = GenfsFiletype.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, __pyx_k__23); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = GenfsFiletype.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = GenfsFiletype.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = GenfsFiletype.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_GenfsFiletype__set_state(((struct __pyx_obj_7setools_9policyrep_GenfsFiletype *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = GenfsFiletype.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, __pyx_state: tuple):
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_GenfsFiletype(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_GenfsFiletype", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_GenfsFiletype__set_state(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_GenfsFiletype__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, __pyx_state: tuple):
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 12, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_GenfsFiletype__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Genfscon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe199f36, 0xddbf4ca, 0xfef56cc, b'context, filetype, fs, key, path, policy, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_31__pyx_unpickle_Genfscon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_31__pyx_unpickle_Genfscon = {"__pyx_unpickle_Genfscon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_31__pyx_unpickle_Genfscon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_31__pyx_unpickle_Genfscon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Genfscon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Genfscon", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Genfscon", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Genfscon", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Genfscon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_30__pyx_unpickle_Genfscon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_30__pyx_unpickle_Genfscon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Genfscon", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Genfscon(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe199f36, 0xddbf4ca, 0xfef56cc, b'context, filetype, fs, key, path, policy, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = Genfscon.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xe199f36, 0xddbf4ca, 0xfef56cc, __pyx_k_context_filetype_fs_key_path_pol); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe199f36, 0xddbf4ca, 0xfef56cc, b'context, filetype, fs, key, path, policy, tclass')
 *     __pyx_result = Genfscon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Genfscon);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe199f36, 0xddbf4ca, 0xfef56cc, b'context, filetype, fs, key, path, policy, tclass')
 *     __pyx_result = Genfscon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Genfscon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Genfscon__set_state(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe199f36, 0xddbf4ca, 0xfef56cc, b'context, filetype, fs, key, path, policy, tclass')
 *     __pyx_result = Genfscon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Genfscon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe199f36, 0xddbf4ca, 0xfef56cc, b'context, filetype, fs, key, path, policy, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Genfscon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Genfscon__set_state(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Genfscon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->filetype);
  __Pyx_DECREF(__pyx_v___pyx_result->filetype);
  __pyx_v___pyx_result->filetype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->fs);
  __Pyx_DECREF(__pyx_v___pyx_result->fs);
  __pyx_v___pyx_result->fs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->path);
  __Pyx_DECREF(__pyx_v___pyx_result->path);
  __pyx_v___pyx_result->path = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->tclass);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->tclass);
  __pyx_v___pyx_result->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 7); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Genfscon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_InitialSID(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00f465e, 0xe578491, 0xd045ac9, b'context, key, name, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_33__pyx_unpickle_InitialSID(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_33__pyx_unpickle_InitialSID = {"__pyx_unpickle_InitialSID", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_33__pyx_unpickle_InitialSID, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_33__pyx_unpickle_InitialSID(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_InitialSID (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_InitialSID", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_InitialSID", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_InitialSID", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_InitialSID", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_32__pyx_unpickle_InitialSID(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_32__pyx_unpickle_InitialSID(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_InitialSID", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_InitialSID(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00f465e, 0xe578491, 0xd045ac9, b'context, key, name, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = InitialSID.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x00f465e, 0xe578491, 0xd045ac9, __pyx_k_context_key_name_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00f465e, 0xe578491, 0xd045ac9, b'context, key, name, policy')
 *     __pyx_result = InitialSID.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_InitialSID);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00f465e, 0xe578491, 0xd045ac9, b'context, key, name, policy')
 *     __pyx_result = InitialSID.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = InitialSID.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_InitialSID__set_state(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00f465e, 0xe578491, 0xd045ac9, b'context, key, name, policy')
 *     __pyx_result = InitialSID.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_InitialSID(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00f465e, 0xe578491, 0xd045ac9, b'context, key, name, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_InitialSID", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_InitialSID__set_state(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_InitialSID__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->name);
  __Pyx_DECREF(__pyx_v___pyx_result->name);
  __pyx_v___pyx_result->name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_InitialSID__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Category(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x249d746, 0x6d8ba27, 0x7c1bbae, b'_aliases, _value, key, name, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_35__pyx_unpickle_Category(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_35__pyx_unpickle_Category = {"__pyx_unpickle_Category", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_35__pyx_unpickle_Category, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_35__pyx_unpickle_Category(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Category (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Category", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Category", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Category", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Category", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_34__pyx_unpickle_Category(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_34__pyx_unpickle_Category(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Category", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Category(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x249d746, 0x6d8ba27, 0x7c1bbae, b'_aliases, _value, key, name, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Category.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x249d746, 0x6d8ba27, 0x7c1bbae, __pyx_k_aliases__value_key_name_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x249d746, 0x6d8ba27, 0x7c1bbae, b'_aliases, _value, key, name, policy')
 *     __pyx_result = Category.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Category);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x249d746, 0x6d8ba27, 0x7c1bbae, b'_aliases, _value, key, name, policy')
 *     __pyx_result = Category.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Category.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Category__set_state(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x249d746, 0x6d8ba27, 0x7c1bbae, b'_aliases, _value, key, name, policy')
 *     __pyx_result = Category.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, __pyx_state: tuple):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Category(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x249d746, 0x6d8ba27, 0x7c1bbae, b'_aliases, _value, key, name, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Category", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Category__set_state(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Category__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, __pyx_state: tuple):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_aliases);
  __Pyx_DECREF(__pyx_v___pyx_result->_aliases);
  __pyx_v___pyx_result->_aliases = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->_value = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, __pyx_state: tuple):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Category__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Sensitivity(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbbab436, 0x2557987, 0xb00469d, b'_aliases, _leveldecl, _value, key, name, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_37__pyx_unpickle_Sensitivity(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_37__pyx_unpickle_Sensitivity = {"__pyx_unpickle_Sensitivity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_37__pyx_unpickle_Sensitivity, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_37__pyx_unpickle_Sensitivity(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Sensitivity (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Sensitivity", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Sensitivity", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Sensitivity", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Sensitivity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_36__pyx_unpickle_Sensitivity(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_36__pyx_unpickle_Sensitivity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Sensitivity", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Sensitivity(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbbab436, 0x2557987, 0xb00469d, b'_aliases, _leveldecl, _value, key, name, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Sensitivity.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xbbab436, 0x2557987, 0xb00469d, __pyx_k_aliases__leveldecl__value_key_n); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbbab436, 0x2557987, 0xb00469d, b'_aliases, _leveldecl, _value, key, name, policy')
 *     __pyx_result = Sensitivity.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbbab436, 0x2557987, 0xb00469d, b'_aliases, _leveldecl, _value, key, name, policy')
 *     __pyx_result = Sensitivity.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Sensitivity.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Sensitivity__set_state(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbbab436, 0x2557987, 0xb00469d, b'_aliases, _leveldecl, _value, key, name, policy')
 *     __pyx_result = Sensitivity.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, __pyx_state: tuple):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Sensitivity(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbbab436, 0x2557987, 0xb00469d, b'_aliases, _leveldecl, _value, key, name, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Sensitivity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Sensitivity__set_state(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Sensitivity__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, __pyx_state: tuple):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_aliases);
  __Pyx_DECREF(__pyx_v___pyx_result->_aliases);
  __pyx_v___pyx_result->_aliases = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDecl))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_leveldecl);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_leveldecl);
  __pyx_v___pyx_result->_leveldecl = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->_value = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, __pyx_state: tuple):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 6); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Sensitivity__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_BaseMLSLevel(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_39__pyx_unpickle_BaseMLSLevel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_39__pyx_unpickle_BaseMLSLevel = {"__pyx_unpickle_BaseMLSLevel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_39__pyx_unpickle_BaseMLSLevel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_39__pyx_unpickle_BaseMLSLevel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseMLSLevel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_BaseMLSLevel", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseMLSLevel", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseMLSLevel", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseMLSLevel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_38__pyx_unpickle_BaseMLSLevel(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_38__pyx_unpickle_BaseMLSLevel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseMLSLevel", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_BaseMLSLevel(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')             # <<<<<<<<<<<<<<
 *     __pyx_result = BaseMLSLevel.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, __pyx_k_categories_key_policy_sensitivi); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
 *     __pyx_result = BaseMLSLevel.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseMLSLevel);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
 *     __pyx_result = BaseMLSLevel.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = BaseMLSLevel.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseMLSLevel__set_state(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
 *     __pyx_result = BaseMLSLevel.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, __pyx_state: tuple):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_BaseMLSLevel(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseMLSLevel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseMLSLevel__set_state(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseMLSLevel__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, __pyx_state: tuple):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PySet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("set", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_categories);
  __Pyx_DECREF(__pyx_v___pyx_result->_categories);
  __pyx_v___pyx_result->_categories = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->sensitivity);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->sensitivity);
  __pyx_v___pyx_result->sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, __pyx_state: tuple):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseMLSLevel__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_LevelDecl(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_41__pyx_unpickle_LevelDecl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_41__pyx_unpickle_LevelDecl = {"__pyx_unpickle_LevelDecl", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_41__pyx_unpickle_LevelDecl, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_41__pyx_unpickle_LevelDecl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_LevelDecl (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_LevelDecl", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_LevelDecl", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_LevelDecl", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_LevelDecl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_40__pyx_unpickle_LevelDecl(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_40__pyx_unpickle_LevelDecl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_LevelDecl", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_LevelDecl(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')             # <<<<<<<<<<<<<<
 *     __pyx_result = LevelDecl.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, __pyx_k_categories_key_policy_sensitivi); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
 *     __pyx_result = LevelDecl.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDecl);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
 *     __pyx_result = LevelDecl.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = LevelDecl.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_LevelDecl__set_state(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
 *     __pyx_result = LevelDecl.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, __pyx_state: tuple):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_LevelDecl(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_LevelDecl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_LevelDecl__set_state(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_LevelDecl__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, __pyx_state: tuple):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PySet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("set", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._categories);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base._categories);
  __pyx_v___pyx_result->__pyx_base._categories = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.sensitivity);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.sensitivity);
  __pyx_v___pyx_result->__pyx_base.sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, __pyx_state: tuple):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_LevelDecl__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Level(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_43__pyx_unpickle_Level(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_43__pyx_unpickle_Level = {"__pyx_unpickle_Level", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_43__pyx_unpickle_Level, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_43__pyx_unpickle_Level(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Level (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Level", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Level", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Level", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Level", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_42__pyx_unpickle_Level(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_42__pyx_unpickle_Level(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Level", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Level(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')             # <<<<<<<<<<<<<<
 *     __pyx_result = Level.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, __pyx_k_categories_key_policy_sensitivi); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
 *     __pyx_result = Level.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
 *     __pyx_result = Level.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Level.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Level__set_state(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
 *     __pyx_result = Level.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, __pyx_state: tuple):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Level(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Level", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Level__set_state(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Level__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, __pyx_state: tuple):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PySet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("set", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._categories);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base._categories);
  __pyx_v___pyx_result->__pyx_base._categories = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.sensitivity);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.sensitivity);
  __pyx_v___pyx_result->__pyx_base.sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, __pyx_state: tuple):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Level__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Range(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x472fd68, 0xa501873, 0xe9a2003, b'high, key, low, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_45__pyx_unpickle_Range(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_45__pyx_unpickle_Range = {"__pyx_unpickle_Range", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_45__pyx_unpickle_Range, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_45__pyx_unpickle_Range(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Range (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Range", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Range", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Range", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_44__pyx_unpickle_Range(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_44__pyx_unpickle_Range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Range", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Range(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x472fd68, 0xa501873, 0xe9a2003, b'high, key, low, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Range.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x472fd68, 0xa501873, 0xe9a2003, __pyx_k_high_key_low_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x472fd68, 0xa501873, 0xe9a2003, b'high, key, low, policy')
 *     __pyx_result = Range.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x472fd68, 0xa501873, 0xe9a2003, b'high, key, low, policy')
 *     __pyx_result = Range.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Range.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Range__set_state(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x472fd68, 0xa501873, 0xe9a2003, b'high, key, low, policy')
 *     __pyx_result = Range.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, __pyx_state: tuple):
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Range(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x472fd68, 0xa501873, 0xe9a2003, b'high, key, low, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Range__set_state(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Range__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, __pyx_state: tuple):
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->high);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->high);
  __pyx_v___pyx_result->high = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->low);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->low);
  __pyx_v___pyx_result->low = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, __pyx_state: tuple):
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Range__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_MLSRule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c51559, 0x4a685de, 0x2be8a15, b'extended, key, origin, policy, rng, ruletype, source, target, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_47__pyx_unpickle_MLSRule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_47__pyx_unpickle_MLSRule = {"__pyx_unpickle_MLSRule", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_47__pyx_unpickle_MLSRule, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_47__pyx_unpickle_MLSRule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_MLSRule (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_MLSRule", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MLSRule", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MLSRule", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_MLSRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_46__pyx_unpickle_MLSRule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_46__pyx_unpickle_MLSRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MLSRule", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_MLSRule(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c51559, 0x4a685de, 0x2be8a15, b'extended, key, origin, policy, rng, ruletype, source, target, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = MLSRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x4c51559, 0x4a685de, 0x2be8a15, __pyx_k_extended_key_origin_policy_rng_r); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c51559, 0x4a685de, 0x2be8a15, b'extended, key, origin, policy, rng, ruletype, source, target, tclass')
 *     __pyx_result = MLSRule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_MLSRule);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c51559, 0x4a685de, 0x2be8a15, b'extended, key, origin, policy, rng, ruletype, source, target, tclass')
 *     __pyx_result = MLSRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = MLSRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_MLSRule__set_state(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c51559, 0x4a685de, 0x2be8a15, b'extended, key, origin, policy, rng, ruletype, source, target, tclass')
 *     __pyx_result = MLSRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, __pyx_state: tuple):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_MLSRule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c51559, 0x4a685de, 0x2be8a15, b'extended, key, origin, policy, rng, ruletype, source, target, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_MLSRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 9)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_MLSRule__set_state(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MLSRule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, __pyx_state: tuple):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 9)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.extended = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->rng);
  __Pyx_DECREF(__pyx_v___pyx_result->rng);
  __pyx_v___pyx_result->rng = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->tclass);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->tclass);
  __pyx_v___pyx_result->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, __pyx_state: tuple):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 9)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 9); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 9)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_MLSRule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Ibendportcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd3c8841, 0x06de730, 0xd15903e, b'context, key, name, policy, port')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_49__pyx_unpickle_Ibendportcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_49__pyx_unpickle_Ibendportcon = {"__pyx_unpickle_Ibendportcon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_49__pyx_unpickle_Ibendportcon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_49__pyx_unpickle_Ibendportcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibendportcon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Ibendportcon", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ibendportcon", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ibendportcon", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibendportcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_48__pyx_unpickle_Ibendportcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_48__pyx_unpickle_Ibendportcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibendportcon", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Ibendportcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd3c8841, 0x06de730, 0xd15903e, b'context, key, name, policy, port')             # <<<<<<<<<<<<<<
 *     __pyx_result = Ibendportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xd3c8841, 0x06de730, 0xd15903e, __pyx_k_context_key_name_policy_port); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd3c8841, 0x06de730, 0xd15903e, b'context, key, name, policy, port')
 *     __pyx_result = Ibendportcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibendportcon);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd3c8841, 0x06de730, 0xd15903e, b'context, key, name, policy, port')
 *     __pyx_result = Ibendportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Ibendportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ibendportcon__set_state(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd3c8841, 0x06de730, 0xd15903e, b'context, key, name, policy, port')
 *     __pyx_result = Ibendportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Ibendportcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd3c8841, 0x06de730, 0xd15903e, b'context, key, name, policy, port')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibendportcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ibendportcon__set_state(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  unsigned int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibendportcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->name);
  __Pyx_DECREF(__pyx_v___pyx_result->name);
  __pyx_v___pyx_result->name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_unsigned_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->port = __pyx_t_3;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibendportcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Ibpkeycon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd4355e5, 0x2bf550c, 0x2dd8c44, b'context, key, pkeys, policy, subnet_prefix')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_51__pyx_unpickle_Ibpkeycon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_51__pyx_unpickle_Ibpkeycon = {"__pyx_unpickle_Ibpkeycon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_51__pyx_unpickle_Ibpkeycon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_51__pyx_unpickle_Ibpkeycon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibpkeycon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Ibpkeycon", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ibpkeycon", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ibpkeycon", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibpkeycon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_50__pyx_unpickle_Ibpkeycon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_50__pyx_unpickle_Ibpkeycon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibpkeycon", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Ibpkeycon(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd4355e5, 0x2bf550c, 0x2dd8c44, b'context, key, pkeys, policy, subnet_prefix')             # <<<<<<<<<<<<<<
 *     __pyx_result = Ibpkeycon.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xd4355e5, 0x2bf550c, 0x2dd8c44, __pyx_k_context_key_pkeys_policy_subnet); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd4355e5, 0x2bf550c, 0x2dd8c44, b'context, key, pkeys, policy, subnet_prefix')
 *     __pyx_result = Ibpkeycon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibpkeycon);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd4355e5, 0x2bf550c, 0x2dd8c44, b'context, key, pkeys, policy, subnet_prefix')
 *     __pyx_result = Ibpkeycon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Ibpkeycon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ibpkeycon__set_state(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd4355e5, 0x2bf550c, 0x2dd8c44, b'context, key, pkeys, policy, subnet_prefix')
 *     __pyx_result = Ibpkeycon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Ibpkeycon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd4355e5, 0x2bf550c, 0x2dd8c44, b'context, key, pkeys, policy, subnet_prefix')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibpkeycon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ibpkeycon__set_state(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibpkeycon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->pkeys);
  __Pyx_DECREF(__pyx_v___pyx_result->pkeys);
  __pyx_v___pyx_result->pkeys = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->subnet_prefix);
  __Pyx_DECREF(__pyx_v___pyx_result->subnet_prefix);
  __pyx_v___pyx_result->subnet_prefix = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibpkeycon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Netifcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x074b3eb, 0x2fb7549, 0xa9f2ad7, b'context, key, netif, packet, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_53__pyx_unpickle_Netifcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_53__pyx_unpickle_Netifcon = {"__pyx_unpickle_Netifcon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_53__pyx_unpickle_Netifcon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_53__pyx_unpickle_Netifcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Netifcon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Netifcon", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Netifcon", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Netifcon", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Netifcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_52__pyx_unpickle_Netifcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_52__pyx_unpickle_Netifcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Netifcon", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Netifcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x074b3eb, 0x2fb7549, 0xa9f2ad7, b'context, key, netif, packet, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Netifcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x074b3eb, 0x2fb7549, 0xa9f2ad7, __pyx_k_context_key_netif_packet_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x074b3eb, 0x2fb7549, 0xa9f2ad7, b'context, key, netif, packet, policy')
 *     __pyx_result = Netifcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Netifcon);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x074b3eb, 0x2fb7549, 0xa9f2ad7, b'context, key, netif, packet, policy')
 *     __pyx_result = Netifcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Netifcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Netifcon__set_state(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x074b3eb, 0x2fb7549, 0xa9f2ad7, b'context, key, netif, packet, policy')
 *     __pyx_result = Netifcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Netifcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x074b3eb, 0x2fb7549, 0xa9f2ad7, b'context, key, netif, packet, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Netifcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Netifcon__set_state(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Netifcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->netif);
  __Pyx_DECREF(__pyx_v___pyx_result->netif);
  __pyx_v___pyx_result->netif = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->packet);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->packet);
  __pyx_v___pyx_result->packet = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Netifcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Nodecon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x5b0ce91, 0x405ab53, 0xd59413d, b'context, ip_version, key, network, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_55__pyx_unpickle_Nodecon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_55__pyx_unpickle_Nodecon = {"__pyx_unpickle_Nodecon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_55__pyx_unpickle_Nodecon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_55__pyx_unpickle_Nodecon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nodecon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Nodecon", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nodecon", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nodecon", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Nodecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_54__pyx_unpickle_Nodecon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_54__pyx_unpickle_Nodecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nodecon", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Nodecon(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x5b0ce91, 0x405ab53, 0xd59413d, b'context, ip_version, key, network, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Nodecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x5b0ce91, 0x405ab53, 0xd59413d, __pyx_k_context_ip_version_key_network_p); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x5b0ce91, 0x405ab53, 0xd59413d, b'context, ip_version, key, network, policy')
 *     __pyx_result = Nodecon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Nodecon);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x5b0ce91, 0x405ab53, 0xd59413d, b'context, ip_version, key, network, policy')
 *     __pyx_result = Nodecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Nodecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Nodecon__set_state(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x5b0ce91, 0x405ab53, 0xd59413d, b'context, ip_version, key, network, policy')
 *     __pyx_result = Nodecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Nodecon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x5b0ce91, 0x405ab53, 0xd59413d, b'context, ip_version, key, network, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Nodecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Nodecon__set_state(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nodecon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ip_version);
  __Pyx_DECREF(__pyx_v___pyx_result->ip_version);
  __pyx_v___pyx_result->ip_version = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->network);
  __Pyx_DECREF(__pyx_v___pyx_result->network);
  __pyx_v___pyx_result->network = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Nodecon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Portcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf1a1872, 0xe496a20, 0xdb6ffdd, b'context, key, policy, ports, protocol')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_57__pyx_unpickle_Portcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_57__pyx_unpickle_Portcon = {"__pyx_unpickle_Portcon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_57__pyx_unpickle_Portcon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_57__pyx_unpickle_Portcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Portcon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Portcon", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Portcon", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Portcon", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Portcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_56__pyx_unpickle_Portcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_56__pyx_unpickle_Portcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Portcon", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Portcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf1a1872, 0xe496a20, 0xdb6ffdd, b'context, key, policy, ports, protocol')             # <<<<<<<<<<<<<<
 *     __pyx_result = Portcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xf1a1872, 0xe496a20, 0xdb6ffdd, __pyx_k_context_key_policy_ports_protoco); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf1a1872, 0xe496a20, 0xdb6ffdd, b'context, key, policy, ports, protocol')
 *     __pyx_result = Portcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Portcon);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf1a1872, 0xe496a20, 0xdb6ffdd, b'context, key, policy, ports, protocol')
 *     __pyx_result = Portcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Portcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Portcon__set_state(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf1a1872, 0xe496a20, 0xdb6ffdd, b'context, key, policy, ports, protocol')
 *     __pyx_result = Portcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Portcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf1a1872, 0xe496a20, 0xdb6ffdd, b'context, key, policy, ports, protocol')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Portcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Portcon__set_state(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Portcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ports);
  __Pyx_DECREF(__pyx_v___pyx_result->ports);
  __pyx_v___pyx_result->ports = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->protocol);
  __Pyx_DECREF(__pyx_v___pyx_result->protocol);
  __pyx_v___pyx_result->protocol = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Portcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Common(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4a0ce16, 0xf379c62, 0xb48e627, b'_perm_table, key, name, perms, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_59__pyx_unpickle_Common(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_59__pyx_unpickle_Common = {"__pyx_unpickle_Common", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_59__pyx_unpickle_Common, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_59__pyx_unpickle_Common(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Common (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Common", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Common", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Common", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Common", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_58__pyx_unpickle_Common(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_58__pyx_unpickle_Common(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Common", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Common(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4a0ce16, 0xf379c62, 0xb48e627, b'_perm_table, key, name, perms, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Common.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x4a0ce16, 0xf379c62, 0xb48e627, __pyx_k_perm_table_key_name_perms_polic); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4a0ce16, 0xf379c62, 0xb48e627, b'_perm_table, key, name, perms, policy')
 *     __pyx_result = Common.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Common);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4a0ce16, 0xf379c62, 0xb48e627, b'_perm_table, key, name, perms, policy')
 *     __pyx_result = Common.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Common.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Common__set_state(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4a0ce16, 0xf379c62, 0xb48e627, b'_perm_table, key, name, perms, policy')
 *     __pyx_result = Common.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, __pyx_state: tuple):
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Common(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4a0ce16, 0xf379c62, 0xb48e627, b'_perm_table, key, name, perms, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Common", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Common__set_state(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Common__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, __pyx_state: tuple):
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_perm_table);
  __Pyx_DECREF(__pyx_v___pyx_result->_perm_table);
  __pyx_v___pyx_result->_perm_table = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("frozenset", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->perms);
  __Pyx_DECREF(__pyx_v___pyx_result->perms);
  __pyx_v___pyx_result->perms = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, __pyx_state: tuple):
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Common__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_ObjClass(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x90ed6ff, 0x56fc29f, 0x676792c, b'_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_61__pyx_unpickle_ObjClass(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_61__pyx_unpickle_ObjClass = {"__pyx_unpickle_ObjClass", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_61__pyx_unpickle_ObjClass, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_61__pyx_unpickle_ObjClass(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_ObjClass (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_ObjClass", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ObjClass", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ObjClass", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ObjClass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_60__pyx_unpickle_ObjClass(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_60__pyx_unpickle_ObjClass(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ObjClass", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_ObjClass(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x90ed6ff, 0x56fc29f, 0x676792c, b'_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = ObjClass.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x90ed6ff, 0x56fc29f, 0x676792c, __pyx_k_common__constraints__defaults); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x90ed6ff, 0x56fc29f, 0x676792c, b'_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy')
 *     __pyx_result = ObjClass.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x90ed6ff, 0x56fc29f, 0x676792c, b'_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy')
 *     __pyx_result = ObjClass.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = ObjClass.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_ObjClass__set_state(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x90ed6ff, 0x56fc29f, 0x676792c, b'_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy')
 *     __pyx_result = ObjClass.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, __pyx_state: tuple):
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_ObjClass(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x90ed6ff, 0x56fc29f, 0x676792c, b'_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ObjClass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 10)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ObjClass__set_state(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  uint32_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ObjClass__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, __pyx_state: tuple):
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 10)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Common))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_common);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_common);
  __pyx_v___pyx_result->_common = ((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_constraints);
  __Pyx_DECREF(__pyx_v___pyx_result->_constraints);
  __pyx_v___pyx_result->_constraints = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_defaults);
  __Pyx_DECREF(__pyx_v___pyx_result->_defaults);
  __pyx_v___pyx_result->_defaults = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_perm_table);
  __Pyx_DECREF(__pyx_v___pyx_result->_perm_table);
  __pyx_v___pyx_result->_perm_table = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_validatetrans);
  __Pyx_DECREF(__pyx_v___pyx_result->_validatetrans);
  __pyx_v___pyx_result->_validatetrans = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->nprim = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("frozenset", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->perms);
  __Pyx_DECREF(__pyx_v___pyx_result->perms);
  __pyx_v___pyx_result->perms = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, __pyx_state: tuple):
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 10)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 10); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 10)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ObjClass__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PermissionVectorIterator(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x3545a83, 0xc92dfa2, 0xc82ae23, b'curr, perm_max, perm_table, policy, vector')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_63__pyx_unpickle_PermissionVectorIterator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_63__pyx_unpickle_PermissionVectorIterator = {"__pyx_unpickle_PermissionVectorIterator", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_63__pyx_unpickle_PermissionVectorIterator, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_63__pyx_unpickle_PermissionVectorIterator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PermissionVectorIterator (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_PermissionVectorIterator", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PermissionVectorIterator", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PermissionVectorIterator", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PermissionVectorIterator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_62__pyx_unpickle_PermissionVectorIterator(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_62__pyx_unpickle_PermissionVectorIterator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PermissionVectorIterator", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_PermissionVectorIterator(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x3545a83, 0xc92dfa2, 0xc82ae23, b'curr, perm_max, perm_table, policy, vector')             # <<<<<<<<<<<<<<
 *     __pyx_result = PermissionVectorIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x3545a83, 0xc92dfa2, 0xc82ae23, __pyx_k_curr_perm_max_perm_table_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x3545a83, 0xc92dfa2, 0xc82ae23, b'curr, perm_max, perm_table, policy, vector')
 *     __pyx_result = PermissionVectorIterator.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x3545a83, 0xc92dfa2, 0xc82ae23, b'curr, perm_max, perm_table, policy, vector')
 *     __pyx_result = PermissionVectorIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = PermissionVectorIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PermissionVectorIterator__set_state(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x3545a83, 0xc92dfa2, 0xc82ae23, b'curr, perm_max, perm_table, policy, vector')
 *     __pyx_result = PermissionVectorIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, __pyx_state: tuple):
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PermissionVectorIterator(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x3545a83, 0xc92dfa2, 0xc82ae23, b'curr, perm_max, perm_table, policy, vector')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PermissionVectorIterator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PermissionVectorIterator__set_state(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PermissionVectorIterator__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, __pyx_state: tuple):
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->curr = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->perm_max = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->perm_table);
  __Pyx_DECREF(__pyx_v___pyx_result->perm_table);
  __pyx_v___pyx_result->perm_table = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->vector = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, __pyx_state: tuple):
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PermissionVectorIterator__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicyObject(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69e74d2, 0xb804180, 0x5db971a, b'key, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_65__pyx_unpickle_PolicyObject(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_65__pyx_unpickle_PolicyObject = {"__pyx_unpickle_PolicyObject", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_65__pyx_unpickle_PolicyObject, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_65__pyx_unpickle_PolicyObject(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyObject (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_PolicyObject", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyObject", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyObject", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyObject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_64__pyx_unpickle_PolicyObject(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_64__pyx_unpickle_PolicyObject(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyObject", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_PolicyObject(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69e74d2, 0xb804180, 0x5db971a, b'key, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = PolicyObject.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x69e74d2, 0xb804180, 0x5db971a, __pyx_k_key_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69e74d2, 0xb804180, 0x5db971a, b'key, policy')
 *     __pyx_result = PolicyObject.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69e74d2, 0xb804180, 0x5db971a, b'key, policy')
 *     __pyx_result = PolicyObject.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = PolicyObject.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyObject__set_state(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69e74d2, 0xb804180, 0x5db971a, b'key, policy')
 *     __pyx_result = PolicyObject.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicyObject(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69e74d2, 0xb804180, 0x5db971a, b'key, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyObject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyObject__set_state(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyObject__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->policy);
  __pyx_v___pyx_result->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyObject__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicySymbol(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_67__pyx_unpickle_PolicySymbol(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_67__pyx_unpickle_PolicySymbol = {"__pyx_unpickle_PolicySymbol", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_67__pyx_unpickle_PolicySymbol, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_67__pyx_unpickle_PolicySymbol(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicySymbol (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_PolicySymbol", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicySymbol", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicySymbol", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicySymbol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_66__pyx_unpickle_PolicySymbol(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_66__pyx_unpickle_PolicySymbol(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicySymbol", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_PolicySymbol(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = PolicySymbol.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, __pyx_k_key_name_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
 *     __pyx_result = PolicySymbol.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
 *     __pyx_result = PolicySymbol.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = PolicySymbol.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicySymbol__set_state(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
 *     __pyx_result = PolicySymbol.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicySymbol(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicySymbol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicySymbol__set_state(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicySymbol__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->name);
  __Pyx_DECREF(__pyx_v___pyx_result->name);
  __pyx_v___pyx_result->name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 3); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicySymbol__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Ocontext(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a91717, 0x477b66a, 0x4a7f087, b'context, key, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_69__pyx_unpickle_Ocontext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_69__pyx_unpickle_Ocontext = {"__pyx_unpickle_Ocontext", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_69__pyx_unpickle_Ocontext, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_69__pyx_unpickle_Ocontext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ocontext (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Ocontext", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ocontext", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ocontext", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ocontext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_68__pyx_unpickle_Ocontext(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_68__pyx_unpickle_Ocontext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ocontext", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Ocontext(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a91717, 0x477b66a, 0x4a7f087, b'context, key, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Ocontext.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x9a91717, 0x477b66a, 0x4a7f087, __pyx_k_context_key_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a91717, 0x477b66a, 0x4a7f087, b'context, key, policy')
 *     __pyx_result = Ocontext.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a91717, 0x477b66a, 0x4a7f087, b'context, key, policy')
 *     __pyx_result = Ocontext.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Ocontext.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ocontext__set_state(((struct __pyx_obj_7setools_9policyrep_Ocontext *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a91717, 0x477b66a, 0x4a7f087, b'context, key, policy')
 *     __pyx_result = Ocontext.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Ocontext(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a91717, 0x477b66a, 0x4a7f087, b'context, key, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ocontext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ocontext__set_state(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ocontext__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->context);
  __pyx_v___pyx_result->context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 3); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ocontext__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicyIterator(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x823412d, 0x9f00fad, 0xf4af8b5, b'policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_71__pyx_unpickle_PolicyIterator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_71__pyx_unpickle_PolicyIterator = {"__pyx_unpickle_PolicyIterator", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_71__pyx_unpickle_PolicyIterator, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_71__pyx_unpickle_PolicyIterator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyIterator (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_PolicyIterator", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyIterator", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyIterator", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyIterator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_70__pyx_unpickle_PolicyIterator(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_70__pyx_unpickle_PolicyIterator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyIterator", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_PolicyIterator(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x823412d, 0x9f00fad, 0xf4af8b5, b'policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = PolicyIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x823412d, 0x9f00fad, 0xf4af8b5, __pyx_k_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x823412d, 0x9f00fad, 0xf4af8b5, b'policy')
 *     __pyx_result = PolicyIterator.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x823412d, 0x9f00fad, 0xf4af8b5, b'policy')
 *     __pyx_result = PolicyIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = PolicyIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyIterator__set_state(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x823412d, 0x9f00fad, 0xf4af8b5, b'policy')
 *     __pyx_result = PolicyIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, __pyx_state: tuple):
 *     __pyx_result.policy = __pyx_state[0]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicyIterator(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x823412d, 0x9f00fad, 0xf4af8b5, b'policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyIterator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.policy = __pyx_state[0]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 1)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyIterator__set_state(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyIterator__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, __pyx_state: tuple):
 *     __pyx_result.policy = __pyx_state[0]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 1)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->policy);
  __pyx_v___pyx_result->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, __pyx_state: tuple):
 *     __pyx_result.policy = __pyx_state[0]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 1)             # <<<<<<<<<<<<<<
*/
  __pyx_t_2 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.policy = __pyx_state[0]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 1)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyIterator__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicyCapability(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_73__pyx_unpickle_PolicyCapability(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_73__pyx_unpickle_PolicyCapability = {"__pyx_unpickle_PolicyCapability", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_73__pyx_unpickle_PolicyCapability, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_73__pyx_unpickle_PolicyCapability(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyCapability (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_PolicyCapability", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyCapability", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyCapability", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyCapability", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_72__pyx_unpickle_PolicyCapability(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_72__pyx_unpickle_PolicyCapability(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyCapability", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_PolicyCapability(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = PolicyCapability.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, __pyx_k_key_name_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
 *     __pyx_result = PolicyCapability.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyCapability);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
 *     __pyx_result = PolicyCapability.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = PolicyCapability.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyCapability__set_state(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
 *     __pyx_result = PolicyCapability.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicyCapability(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyCapability", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyCapability__set_state(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyCapability__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 3); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyCapability__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_RoleAllow(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_75__pyx_unpickle_RoleAllow(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_75__pyx_unpickle_RoleAllow = {"__pyx_unpickle_RoleAllow", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_75__pyx_unpickle_RoleAllow, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_75__pyx_unpickle_RoleAllow(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleAllow (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_RoleAllow", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoleAllow", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoleAllow", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleAllow", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_74__pyx_unpickle_RoleAllow(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_74__pyx_unpickle_RoleAllow(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleAllow", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_RoleAllow(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')             # <<<<<<<<<<<<<<
 *     __pyx_result = RoleAllow.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, __pyx_k_extended_key_origin_policy_rulet); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')
 *     __pyx_result = RoleAllow.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllow);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')
 *     __pyx_result = RoleAllow.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = RoleAllow.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_RoleAllow__set_state(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')
 *     __pyx_result = RoleAllow.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, __pyx_state: tuple):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_RoleAllow(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleAllow", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_RoleAllow__set_state(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleAllow__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, __pyx_state: tuple):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.extended = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, __pyx_state: tuple):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 7); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleAllow__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_RoleTransition(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe7c0663, 0xf38f83f, 0x6a498fa, b'dft, extended, key, origin, policy, ruletype, source, target, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_77__pyx_unpickle_RoleTransition(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_77__pyx_unpickle_RoleTransition = {"__pyx_unpickle_RoleTransition", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_77__pyx_unpickle_RoleTransition, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_77__pyx_unpickle_RoleTransition(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleTransition (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_RoleTransition", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoleTransition", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoleTransition", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleTransition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_76__pyx_unpickle_RoleTransition(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_76__pyx_unpickle_RoleTransition(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleTransition", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_RoleTransition(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe7c0663, 0xf38f83f, 0x6a498fa, b'dft, extended, key, origin, policy, ruletype, source, target, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = RoleTransition.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xe7c0663, 0xf38f83f, 0x6a498fa, __pyx_k_dft_extended_key_origin_policy_r); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe7c0663, 0xf38f83f, 0x6a498fa, b'dft, extended, key, origin, policy, ruletype, source, target, tclass')
 *     __pyx_result = RoleTransition.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransition);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe7c0663, 0xf38f83f, 0x6a498fa, b'dft, extended, key, origin, policy, ruletype, source, target, tclass')
 *     __pyx_result = RoleTransition.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = RoleTransition.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_RoleTransition__set_state(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe7c0663, 0xf38f83f, 0x6a498fa, b'dft, extended, key, origin, policy, ruletype, source, target, tclass')
 *     __pyx_result = RoleTransition.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, __pyx_state: tuple):
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_RoleTransition(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe7c0663, 0xf38f83f, 0x6a498fa, b'dft, extended, key, origin, policy, ruletype, source, target, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleTransition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 9)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_RoleTransition__set_state(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleTransition__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, __pyx_state: tuple):
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 9)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Role))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->dft);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->dft);
  __pyx_v___pyx_result->dft = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.extended = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->tclass);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->tclass);
  __pyx_v___pyx_result->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, __pyx_state: tuple):
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 9)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 9); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 9)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleTransition__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Role(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_79__pyx_unpickle_Role(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_79__pyx_unpickle_Role = {"__pyx_unpickle_Role", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_79__pyx_unpickle_Role, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_79__pyx_unpickle_Role(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Role (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Role", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Role", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Role", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Role", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_78__pyx_unpickle_Role(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_78__pyx_unpickle_Role(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Role", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Role(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Role.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, __pyx_k_types_key_name_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')
 *     __pyx_result = Role.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Role);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')
 *     __pyx_result = Role.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Role.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Role__set_state(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')
 *     __pyx_result = Role.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, __pyx_state: tuple):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Role(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Role", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Role__set_state(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Role__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, __pyx_state: tuple):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("frozenset", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_types);
  __Pyx_DECREF(__pyx_v___pyx_result->_types);
  __pyx_v___pyx_result->_types = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, __pyx_state: tuple):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Role__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicyRule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_81__pyx_unpickle_PolicyRule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_81__pyx_unpickle_PolicyRule = {"__pyx_unpickle_PolicyRule", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_81__pyx_unpickle_PolicyRule, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_81__pyx_unpickle_PolicyRule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyRule (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_PolicyRule", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyRule", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyRule", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_80__pyx_unpickle_PolicyRule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_80__pyx_unpickle_PolicyRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyRule", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_PolicyRule(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')             # <<<<<<<<<<<<<<
 *     __pyx_result = PolicyRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, __pyx_k_extended_key_origin_policy_rulet); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')
 *     __pyx_result = PolicyRule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')
 *     __pyx_result = PolicyRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = PolicyRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyRule__set_state(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')
 *     __pyx_result = PolicyRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, __pyx_state: tuple):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicyRule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyRule__set_state(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyRule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, __pyx_state: tuple):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->extended = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->origin);
  __Pyx_DECREF(__pyx_v___pyx_result->origin);
  __pyx_v___pyx_result->origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->ruletype);
  __pyx_v___pyx_result->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->source);
  __Pyx_DECREF(__pyx_v___pyx_result->source);
  __pyx_v___pyx_result->source = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->target);
  __Pyx_DECREF(__pyx_v___pyx_result->target);
  __pyx_v___pyx_result->target = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, __pyx_state: tuple):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 7); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyRule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_BaseTERule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd397518, 0xa49d0ca, 0x8b22cbf, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_83__pyx_unpickle_BaseTERule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_83__pyx_unpickle_BaseTERule = {"__pyx_unpickle_BaseTERule", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_83__pyx_unpickle_BaseTERule, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_83__pyx_unpickle_BaseTERule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseTERule (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_BaseTERule", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseTERule", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseTERule", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseTERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_82__pyx_unpickle_BaseTERule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_82__pyx_unpickle_BaseTERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseTERule", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_BaseTERule(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd397518, 0xa49d0ca, 0x8b22cbf, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = BaseTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xd397518, 0xa49d0ca, 0x8b22cbf, __pyx_k_conditional__conditional_block); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd397518, 0xa49d0ca, 0x8b22cbf, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = BaseTERule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd397518, 0xa49d0ca, 0x8b22cbf, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = BaseTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = BaseTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseTERule__set_state(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd397518, 0xa49d0ca, 0x8b22cbf, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = BaseTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_BaseTERule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd397518, 0xa49d0ca, 0x8b22cbf, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseTERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 12)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseTERule__set_state(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseTERule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 12)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_conditional);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_conditional);
  __pyx_v___pyx_result->_conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->_conditional_block = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_xperm_type);
  __Pyx_DECREF(__pyx_v___pyx_result->_xperm_type);
  __pyx_v___pyx_result->_xperm_type = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.extended = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->rule_string);
  __Pyx_DECREF(__pyx_v___pyx_result->rule_string);
  __pyx_v___pyx_result->rule_string = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->tclass);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->tclass);
  __pyx_v___pyx_result->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 12)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 12); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 12)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseTERule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_AVRule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_85__pyx_unpickle_AVRule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_85__pyx_unpickle_AVRule = {"__pyx_unpickle_AVRule", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_85__pyx_unpickle_AVRule, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_85__pyx_unpickle_AVRule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRule (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_AVRule", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AVRule", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AVRule", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_84__pyx_unpickle_AVRule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_84__pyx_unpickle_AVRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRule", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_AVRule(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = AVRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, __pyx_k_conditional__conditional_block_2); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = AVRule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRule);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = AVRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = AVRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_AVRule__set_state(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = AVRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.perms = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_AVRule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.perms = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_AVRule__set_state(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.perms = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional);
  __pyx_v___pyx_result->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base._conditional_block = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._xperm_type);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base._xperm_type);
  __pyx_v___pyx_result->__pyx_base._xperm_type = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.extended = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("frozenset", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->perms);
  __Pyx_DECREF(__pyx_v___pyx_result->perms);
  __pyx_v___pyx_result->perms = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __pyx_v___pyx_result->__pyx_base.rule_string = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 12, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass);
  __pyx_v___pyx_result->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.perms = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 13); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.perms = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_XpermSet(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_87__pyx_unpickle_XpermSet(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_87__pyx_unpickle_XpermSet = {"__pyx_unpickle_XpermSet", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_87__pyx_unpickle_XpermSet, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_87__pyx_unpickle_XpermSet(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_XpermSet (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_XpermSet", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_XpermSet", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_XpermSet", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_XpermSet", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_86__pyx_unpickle_XpermSet(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_86__pyx_unpickle_XpermSet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_XpermSet", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_XpermSet(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')             # <<<<<<<<<<<<<<
 *     __pyx_result = XpermSet.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, __pyx_k__23); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = XpermSet.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_XpermSet__set_state(<XpermSet> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = XpermSet.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_XpermSet__set_state(<XpermSet> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = XpermSet.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_XpermSet__set_state(<XpermSet> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_XpermSet__set_state(XpermSet __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_XpermSet__set_state(((struct __pyx_obj_7setools_9policyrep_XpermSet *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = XpermSet.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_XpermSet__set_state(<XpermSet> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_XpermSet__set_state(<XpermSet> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_XpermSet__set_state(XpermSet __pyx_result, __pyx_state: tuple):
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_XpermSet(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_XpermSet", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_XpermSet__set_state(<XpermSet> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_XpermSet__set_state(XpermSet __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_XpermSet__set_state(struct __pyx_obj_7setools_9policyrep_XpermSet *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_XpermSet__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_XpermSet__set_state(XpermSet __pyx_result, __pyx_state: tuple):
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 12, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_XpermSet__set_state(<XpermSet> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_XpermSet__set_state(XpermSet __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_XpermSet__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_IoctlSet(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_89__pyx_unpickle_IoctlSet(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_89__pyx_unpickle_IoctlSet = {"__pyx_unpickle_IoctlSet", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_89__pyx_unpickle_IoctlSet, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_89__pyx_unpickle_IoctlSet(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_IoctlSet (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_IoctlSet", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_IoctlSet", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_IoctlSet", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_IoctlSet", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_88__pyx_unpickle_IoctlSet(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_88__pyx_unpickle_IoctlSet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_IoctlSet", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_IoctlSet(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')             # <<<<<<<<<<<<<<
 *     __pyx_result = IoctlSet.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, __pyx_k__23); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = IoctlSet.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IoctlSet);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = IoctlSet.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = IoctlSet.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_IoctlSet__set_state(((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = IoctlSet.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, __pyx_state: tuple):
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_IoctlSet(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_IoctlSet", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_IoctlSet__set_state(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_IoctlSet__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, __pyx_state: tuple):
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 12, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_IoctlSet__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_AVRuleXperm(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_91__pyx_unpickle_AVRuleXperm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_91__pyx_unpickle_AVRuleXperm = {"__pyx_unpickle_AVRuleXperm", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_91__pyx_unpickle_AVRuleXperm, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_91__pyx_unpickle_AVRuleXperm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRuleXperm (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_AVRuleXperm", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AVRuleXperm", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AVRuleXperm", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRuleXperm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_90__pyx_unpickle_AVRuleXperm(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_90__pyx_unpickle_AVRuleXperm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRuleXperm", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_AVRuleXperm(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = AVRuleXperm.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, __pyx_k_conditional__conditional_block_2); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = AVRuleXperm.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRuleXperm);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = AVRuleXperm.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = AVRuleXperm.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_AVRuleXperm__set_state(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = AVRuleXperm.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.perms = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_AVRuleXperm(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRuleXperm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.perms = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_AVRuleXperm__set_state(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRuleXperm__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.perms = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional);
  __pyx_v___pyx_result->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base._conditional_block = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._xperm_type);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base._xperm_type);
  __pyx_v___pyx_result->__pyx_base._xperm_type = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.extended = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->perms);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->perms);
  __pyx_v___pyx_result->perms = ((struct __pyx_obj_7setools_9policyrep_XpermSet *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __pyx_v___pyx_result->__pyx_base.rule_string = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 12, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass);
  __pyx_v___pyx_result->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.perms = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 13); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.perms = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRuleXperm__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_TERule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb33fdce, 0x914f014, 0xca05c5b, b'_conditional, _conditional_block, _xperm_type, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_93__pyx_unpickle_TERule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_93__pyx_unpickle_TERule = {"__pyx_unpickle_TERule", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_93__pyx_unpickle_TERule, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_93__pyx_unpickle_TERule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_TERule (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_TERule", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TERule", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TERule", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_92__pyx_unpickle_TERule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_92__pyx_unpickle_TERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_TERule", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_TERule(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb33fdce, 0x914f014, 0xca05c5b, b'_conditional, _conditional_block, _xperm_type, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = TERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xb33fdce, 0x914f014, 0xca05c5b, __pyx_k_conditional__conditional_block_3); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb33fdce, 0x914f014, 0xca05c5b, b'_conditional, _conditional_block, _xperm_type, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = TERule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERule);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb33fdce, 0x914f014, 0xca05c5b, b'_conditional, _conditional_block, _xperm_type, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = TERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = TERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_TERule__set_state(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb33fdce, 0x914f014, 0xca05c5b, b'_conditional, _conditional_block, _xperm_type, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = TERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.dft = __pyx_state[3]; __pyx_result.extended = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_TERule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb33fdce, 0x914f014, 0xca05c5b, b'_conditional, _conditional_block, _xperm_type, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.dft = __pyx_state[3]; __pyx_result.extended = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_TERule__set_state(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_TERule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.dft = __pyx_state[3]; __pyx_result.extended = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional);
  __pyx_v___pyx_result->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base._conditional_block = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._xperm_type);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base._xperm_type);
  __pyx_v___pyx_result->__pyx_base._xperm_type = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->dft);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->dft);
  __pyx_v___pyx_result->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.extended = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __pyx_v___pyx_result->__pyx_base.rule_string = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 12, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass);
  __pyx_v___pyx_result->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.dft = __pyx_state[3]; __pyx_result.extended = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 13); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.dft = __pyx_state[3]; __pyx_result.extended = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 13)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TERule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_FileNameTERule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8b9259a, 0x0e23cf4, 0x58f8522, b'_conditional, _conditional_block, _xperm_type, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_95__pyx_unpickle_FileNameTERule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_95__pyx_unpickle_FileNameTERule = {"__pyx_unpickle_FileNameTERule", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_95__pyx_unpickle_FileNameTERule, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_95__pyx_unpickle_FileNameTERule(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_FileNameTERule (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_FileNameTERule", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FileNameTERule", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FileNameTERule", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FileNameTERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_94__pyx_unpickle_FileNameTERule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_94__pyx_unpickle_FileNameTERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_FileNameTERule", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_FileNameTERule(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8b9259a, 0x0e23cf4, 0x58f8522, b'_conditional, _conditional_block, _xperm_type, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass')             # <<<<<<<<<<<<<<
 *     __pyx_result = FileNameTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x8b9259a, 0x0e23cf4, 0x58f8522, __pyx_k_conditional__conditional_block_4); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8b9259a, 0x0e23cf4, 0x58f8522, b'_conditional, _conditional_block, _xperm_type, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = FileNameTERule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERule);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8b9259a, 0x0e23cf4, 0x58f8522, b'_conditional, _conditional_block, _xperm_type, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = FileNameTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = FileNameTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_FileNameTERule__set_state(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8b9259a, 0x0e23cf4, 0x58f8522, b'_conditional, _conditional_block, _xperm_type, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass')
 *     __pyx_result = FileNameTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.dft = __pyx_state[3]; __pyx_result.extended = __pyx_state[4]; __pyx_result.filename = __pyx_state[5]; __pyx_result.key = __pyx_state[6]; __pyx_result.origin = __pyx_state[7]; __pyx_result.policy = __pyx_state[8]; __pyx_result.rule_string = __pyx_state[9]; __pyx_result.ruletype = __pyx_state[10]; __pyx_result.source = __pyx_state[11]; __pyx_result.target = __pyx_state[12]; __pyx_result.tclass = __pyx_state[13]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_FileNameTERule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8b9259a, 0x0e23cf4, 0x58f8522, b'_conditional, _conditional_block, _xperm_type, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FileNameTERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.dft = __pyx_state[3]; __pyx_result.extended = __pyx_state[4]; __pyx_result.filename = __pyx_state[5]; __pyx_result.key = __pyx_state[6]; __pyx_result.origin = __pyx_state[7]; __pyx_result.policy = __pyx_state[8]; __pyx_result.rule_string = __pyx_state[9]; __pyx_result.ruletype = __pyx_state[10]; __pyx_result.source = __pyx_state[11]; __pyx_result.target = __pyx_state[12]; __pyx_result.tclass = __pyx_state[13]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 14)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_FileNameTERule__set_state(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_FileNameTERule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.dft = __pyx_state[3]; __pyx_result.extended = __pyx_state[4]; __pyx_result.filename = __pyx_state[5]; __pyx_result.key = __pyx_state[6]; __pyx_result.origin = __pyx_state[7]; __pyx_result.policy = __pyx_state[8]; __pyx_result.rule_string = __pyx_state[9]; __pyx_result.ruletype = __pyx_state[10]; __pyx_result.source = __pyx_state[11]; __pyx_result.target = __pyx_state[12]; __pyx_result.tclass = __pyx_state[13]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 14)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional);
  __pyx_v___pyx_result->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base._conditional_block = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._xperm_type);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base._xperm_type);
  __pyx_v___pyx_result->__pyx_base._xperm_type = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->dft);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->dft);
  __pyx_v___pyx_result->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.extended = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->filename);
  __Pyx_DECREF(__pyx_v___pyx_result->filename);
  __pyx_v___pyx_result->filename = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_3;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __pyx_v___pyx_result->__pyx_base.rule_string = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 12, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 13, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass);
  __pyx_v___pyx_result->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, __pyx_state: tuple):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.dft = __pyx_state[3]; __pyx_result.extended = __pyx_state[4]; __pyx_result.filename = __pyx_state[5]; __pyx_result.key = __pyx_state[6]; __pyx_result.origin = __pyx_state[7]; __pyx_result.policy = __pyx_state[8]; __pyx_result.rule_string = __pyx_state[9]; __pyx_result.ruletype = __pyx_state[10]; __pyx_result.source = __pyx_state[11]; __pyx_result.target = __pyx_state[12]; __pyx_result.tclass = __pyx_state[13]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 14)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 14); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result._xperm_type = __pyx_state[2]; __pyx_result.dft = __pyx_state[3]; __pyx_result.extended = __pyx_state[4]; __pyx_result.filename = __pyx_state[5]; __pyx_result.key = __pyx_state[6]; __pyx_result.origin = __pyx_state[7]; __pyx_result.policy = __pyx_state[8]; __pyx_result.rule_string = __pyx_state[9]; __pyx_result.ruletype = __pyx_state[10]; __pyx_result.source = __pyx_state[11]; __pyx_result.target = __pyx_state[12]; __pyx_result.tclass = __pyx_state[13]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 14)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FileNameTERule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_BaseType(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_97__pyx_unpickle_BaseType(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_97__pyx_unpickle_BaseType = {"__pyx_unpickle_BaseType", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_97__pyx_unpickle_BaseType, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_97__pyx_unpickle_BaseType(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseType (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_BaseType", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseType", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseType", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseType", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_96__pyx_unpickle_BaseType(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_96__pyx_unpickle_BaseType(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseType", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_BaseType(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = BaseType.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, __pyx_k_key_name_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
 *     __pyx_result = BaseType.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
 *     __pyx_result = BaseType.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = BaseType.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseType__set_state(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
 *     __pyx_result = BaseType.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_BaseType(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseType", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseType__set_state(struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseType__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, __pyx_state: tuple):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 3); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseType__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Type(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf433841, 0x8a57232, 0x18d2e7e, b'_aliases, _attrs, ispermissive, key, name, policy, value')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_99__pyx_unpickle_Type(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_99__pyx_unpickle_Type = {"__pyx_unpickle_Type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_99__pyx_unpickle_Type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_99__pyx_unpickle_Type(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Type", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Type", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Type", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_98__pyx_unpickle_Type(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_98__pyx_unpickle_Type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Type", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Type(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf433841, 0x8a57232, 0x18d2e7e, b'_aliases, _attrs, ispermissive, key, name, policy, value')             # <<<<<<<<<<<<<<
 *     __pyx_result = Type.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xf433841, 0x8a57232, 0x18d2e7e, __pyx_k_aliases__attrs_ispermissive_key); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf433841, 0x8a57232, 0x18d2e7e, b'_aliases, _attrs, ispermissive, key, name, policy, value')
 *     __pyx_result = Type.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf433841, 0x8a57232, 0x18d2e7e, b'_aliases, _attrs, ispermissive, key, name, policy, value')
 *     __pyx_result = Type.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Type.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Type__set_state(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf433841, 0x8a57232, 0x18d2e7e, b'_aliases, _attrs, ispermissive, key, name, policy, value')
 *     __pyx_result = Type.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, __pyx_state: tuple):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Type(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf433841, 0x8a57232, 0x18d2e7e, b'_aliases, _attrs, ispermissive, key, name, policy, value')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Type__set_state(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  uint32_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Type__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, __pyx_state: tuple):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_aliases);
  __Pyx_DECREF(__pyx_v___pyx_result->_aliases);
  __pyx_v___pyx_result->_aliases = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_attrs);
  __Pyx_DECREF(__pyx_v___pyx_result->_attrs);
  __pyx_v___pyx_result->_attrs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ispermissive);
  __Pyx_DECREF(__pyx_v___pyx_result->ispermissive);
  __pyx_v___pyx_result->ispermissive = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->value = __pyx_t_3;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, __pyx_state: tuple):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)             # <<<<<<<<<<<<<<
*/
  __pyx_t_4 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 7); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 7)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Type__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_TypeAttribute(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_101__pyx_unpickle_TypeAttribute(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_101__pyx_unpickle_TypeAttribute = {"__pyx_unpickle_TypeAttribute", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_101__pyx_unpickle_TypeAttribute, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_101__pyx_unpickle_TypeAttribute(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_TypeAttribute (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_TypeAttribute", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TypeAttribute", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TypeAttribute", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TypeAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_100__pyx_unpickle_TypeAttribute(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_100__pyx_unpickle_TypeAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_TypeAttribute", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_TypeAttribute(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = TypeAttribute.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, __pyx_k_types_key_name_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')
 *     __pyx_result = TypeAttribute.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttribute);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')
 *     __pyx_result = TypeAttribute.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = TypeAttribute.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_TypeAttribute__set_state(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')
 *     __pyx_result = TypeAttribute.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, __pyx_state: tuple):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_TypeAttribute(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TypeAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_TypeAttribute__set_state(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_TypeAttribute__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, __pyx_state: tuple):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_types);
  __Pyx_DECREF(__pyx_v___pyx_result->_types);
  __pyx_v___pyx_result->_types = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, __pyx_state: tuple):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TypeAttribute__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_User(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb60edeb, 0xd4755c5, 0x6debf30, b'_level, _range, key, name, policy, roles')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_103__pyx_unpickle_User(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_103__pyx_unpickle_User = {"__pyx_unpickle_User", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_103__pyx_unpickle_User, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_103__pyx_unpickle_User(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_User (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_User", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_User", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_User", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_User", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_102__pyx_unpickle_User(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_102__pyx_unpickle_User(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_User", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_User(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb60edeb, 0xd4755c5, 0x6debf30, b'_level, _range, key, name, policy, roles')             # <<<<<<<<<<<<<<
 *     __pyx_result = User.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xb60edeb, 0xd4755c5, 0x6debf30, __pyx_k_level__range_key_name_policy_ro); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb60edeb, 0xd4755c5, 0x6debf30, b'_level, _range, key, name, policy, roles')
 *     __pyx_result = User.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_User);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb60edeb, 0xd4755c5, 0x6debf30, b'_level, _range, key, name, policy, roles')
 *     __pyx_result = User.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = User.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_User__set_state(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb60edeb, 0xd4755c5, 0x6debf30, b'_level, _range, key, name, policy, roles')
 *     __pyx_result = User.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, __pyx_state: tuple):
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_User(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb60edeb, 0xd4755c5, 0x6debf30, b'_level, _range, key, name, policy, roles')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_User", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_User__set_state(struct __pyx_obj_7setools_9policyrep_User *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_User__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, __pyx_state: tuple):
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_level);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_level);
  __pyx_v___pyx_result->_level = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_range);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_range);
  __pyx_v___pyx_result->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("frozenset", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->roles);
  __Pyx_DECREF(__pyx_v___pyx_result->roles);
  __pyx_v___pyx_result->roles = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, __pyx_state: tuple):
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_User__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Devicetreecon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a01f0f, 0x2d131d2, 0xfdfbc8f, b'context, key, path, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_105__pyx_unpickle_Devicetreecon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_105__pyx_unpickle_Devicetreecon = {"__pyx_unpickle_Devicetreecon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_105__pyx_unpickle_Devicetreecon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_105__pyx_unpickle_Devicetreecon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Devicetreecon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Devicetreecon", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Devicetreecon", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Devicetreecon", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Devicetreecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_104__pyx_unpickle_Devicetreecon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_104__pyx_unpickle_Devicetreecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Devicetreecon", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Devicetreecon(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a01f0f, 0x2d131d2, 0xfdfbc8f, b'context, key, path, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Devicetreecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x9a01f0f, 0x2d131d2, 0xfdfbc8f, __pyx_k_context_key_path_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a01f0f, 0x2d131d2, 0xfdfbc8f, b'context, key, path, policy')
 *     __pyx_result = Devicetreecon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Devicetreecon);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a01f0f, 0x2d131d2, 0xfdfbc8f, b'context, key, path, policy')
 *     __pyx_result = Devicetreecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Devicetreecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Devicetreecon__set_state(((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a01f0f, 0x2d131d2, 0xfdfbc8f, b'context, key, path, policy')
 *     __pyx_result = Devicetreecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Devicetreecon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9a01f0f, 0x2d131d2, 0xfdfbc8f, b'context, key, path, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Devicetreecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Devicetreecon__set_state(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Devicetreecon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->path);
  __Pyx_DECREF(__pyx_v___pyx_result->path);
  __pyx_v___pyx_result->path = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Devicetreecon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Iomemcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69ba798, 0xe436981, 0x45b5f78, b'addr, context, key, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_107__pyx_unpickle_Iomemcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_107__pyx_unpickle_Iomemcon = {"__pyx_unpickle_Iomemcon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_107__pyx_unpickle_Iomemcon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_107__pyx_unpickle_Iomemcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Iomemcon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Iomemcon", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Iomemcon", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Iomemcon", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Iomemcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_106__pyx_unpickle_Iomemcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_106__pyx_unpickle_Iomemcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Iomemcon", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Iomemcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69ba798, 0xe436981, 0x45b5f78, b'addr, context, key, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Iomemcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x69ba798, 0xe436981, 0x45b5f78, __pyx_k_addr_context_key_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69ba798, 0xe436981, 0x45b5f78, b'addr, context, key, policy')
 *     __pyx_result = Iomemcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Iomemcon);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69ba798, 0xe436981, 0x45b5f78, b'addr, context, key, policy')
 *     __pyx_result = Iomemcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Iomemcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Iomemcon__set_state(((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69ba798, 0xe436981, 0x45b5f78, b'addr, context, key, policy')
 *     __pyx_result = Iomemcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Iomemcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69ba798, 0xe436981, 0x45b5f78, b'addr, context, key, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Iomemcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Iomemcon__set_state(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Iomemcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->addr);
  __Pyx_DECREF(__pyx_v___pyx_result->addr);
  __pyx_v___pyx_result->addr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Iomemcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Ioportcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8f4c806, 0xfe93e60, 0xc9b4b53, b'context, key, policy, ports')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_109__pyx_unpickle_Ioportcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_109__pyx_unpickle_Ioportcon = {"__pyx_unpickle_Ioportcon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_109__pyx_unpickle_Ioportcon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_109__pyx_unpickle_Ioportcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ioportcon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Ioportcon", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ioportcon", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ioportcon", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ioportcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_108__pyx_unpickle_Ioportcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_108__pyx_unpickle_Ioportcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ioportcon", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Ioportcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8f4c806, 0xfe93e60, 0xc9b4b53, b'context, key, policy, ports')             # <<<<<<<<<<<<<<
 *     __pyx_result = Ioportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x8f4c806, 0xfe93e60, 0xc9b4b53, __pyx_k_context_key_policy_ports); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8f4c806, 0xfe93e60, 0xc9b4b53, b'context, key, policy, ports')
 *     __pyx_result = Ioportcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ioportcon);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8f4c806, 0xfe93e60, 0xc9b4b53, b'context, key, policy, ports')
 *     __pyx_result = Ioportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Ioportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ioportcon__set_state(((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8f4c806, 0xfe93e60, 0xc9b4b53, b'context, key, policy, ports')
 *     __pyx_result = Ioportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Ioportcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8f4c806, 0xfe93e60, 0xc9b4b53, b'context, key, policy, ports')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ioportcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ioportcon__set_state(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ioportcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ports);
  __Pyx_DECREF(__pyx_v___pyx_result->ports);
  __pyx_v___pyx_result->ports = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ioportcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Pcidevicecon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xa2b1ad7, 0x9b7410e, 0x6756798, b'context, device, key, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_111__pyx_unpickle_Pcidevicecon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_111__pyx_unpickle_Pcidevicecon = {"__pyx_unpickle_Pcidevicecon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_111__pyx_unpickle_Pcidevicecon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_111__pyx_unpickle_Pcidevicecon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pcidevicecon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Pcidevicecon", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Pcidevicecon", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Pcidevicecon", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pcidevicecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_110__pyx_unpickle_Pcidevicecon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_110__pyx_unpickle_Pcidevicecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pcidevicecon", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Pcidevicecon(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xa2b1ad7, 0x9b7410e, 0x6756798, b'context, device, key, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Pcidevicecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xa2b1ad7, 0x9b7410e, 0x6756798, __pyx_k_context_device_key_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xa2b1ad7, 0x9b7410e, 0x6756798, b'context, device, key, policy')
 *     __pyx_result = Pcidevicecon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pcidevicecon);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xa2b1ad7, 0x9b7410e, 0x6756798, b'context, device, key, policy')
 *     __pyx_result = Pcidevicecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Pcidevicecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Pcidevicecon__set_state(((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xa2b1ad7, 0x9b7410e, 0x6756798, b'context, device, key, policy')
 *     __pyx_result = Pcidevicecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Pcidevicecon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xa2b1ad7, 0x9b7410e, 0x6756798, b'context, device, key, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pcidevicecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Pcidevicecon__set_state(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pcidevicecon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->device);
  __Pyx_DECREF(__pyx_v___pyx_result->device);
  __pyx_v___pyx_result->device = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pcidevicecon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Pirqcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x679ce62, 0x8ca1d1e, 0xb87ee88, b'context, irq, key, policy')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_113__pyx_unpickle_Pirqcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_113__pyx_unpickle_Pirqcon = {"__pyx_unpickle_Pirqcon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_113__pyx_unpickle_Pirqcon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_113__pyx_unpickle_Pirqcon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pirqcon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Pirqcon", 0) < (0)) __PYX_ERR(7, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Pirqcon", 1, 3, 3, i); __PYX_ERR(7, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(7, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Pirqcon", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pirqcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(7, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_112__pyx_unpickle_Pirqcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_112__pyx_unpickle_Pirqcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pirqcon", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Pirqcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x679ce62, 0x8ca1d1e, 0xb87ee88, b'context, irq, key, policy')             # <<<<<<<<<<<<<<
 *     __pyx_result = Pirqcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x679ce62, 0x8ca1d1e, 0xb87ee88, __pyx_k_context_irq_key_policy); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x679ce62, 0x8ca1d1e, 0xb87ee88, b'context, irq, key, policy')
 *     __pyx_result = Pirqcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pirqcon);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x679ce62, 0x8ca1d1e, 0xb87ee88, b'context, irq, key, policy')
 *     __pyx_result = Pirqcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Pirqcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(7, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7setools_9policyrep___pyx_unpickle_Pirqcon__set_state(((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x679ce62, 0x8ca1d1e, 0xb87ee88, b'context, irq, key, policy')
 *     __pyx_result = Pirqcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Pirqcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x679ce62, 0x8ca1d1e, 0xb87ee88, b'context, irq, key, policy')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pirqcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Pirqcon__set_state(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pirqcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.context);
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->irq);
  __Pyx_DECREF(__pyx_v___pyx_result->irq);
  __pyx_v___pyx_result->irq = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyLong_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, __pyx_state: tuple):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pirqcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* #### Code section: module_exttypes ### */

static PyObject *__pyx_tp_new_7setools_9policyrep_FileContexts(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_FileContexts *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_FileContexts *)o);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  p->path = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_7setools_9policyrep_12FileContexts_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_7setools_9policyrep_FileContexts(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_FileContexts *p = (struct __pyx_obj_7setools_9policyrep_FileContexts *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_FileContexts) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_7setools_9policyrep_12FileContexts_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->policy);
  Py_CLEAR(p->path);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_7setools_9policyrep_FileContexts(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_FileContexts *p = (struct __pyx_obj_7setools_9policyrep_FileContexts *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->policy) {
    e = (*v)(((PyObject *)p->policy), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_FileContexts(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_FileContexts *p = (struct __pyx_obj_7setools_9policyrep_FileContexts *)o;
  tmp = ((PyObject*)p->policy);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_12FileContexts_policy(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12FileContexts_6policy_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_12FileContexts_path(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12FileContexts_4path_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_FileContexts[] = {
  {"lookup", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12FileContexts_5lookup, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_12FileContexts_4lookup},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12FileContexts_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12FileContexts_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_FileContexts[] = {
  {"policy", __pyx_getprop_7setools_9policyrep_12FileContexts_policy, 0, 0, 0},
  {"path", __pyx_getprop_7setools_9policyrep_12FileContexts_path, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_FileContexts_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_FileContexts},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_FileContexts},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_FileContexts},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_FileContexts},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_FileContexts},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_FileContexts},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_FileContexts_spec = {
  "setools.policyrep.FileContexts",
  sizeof(struct __pyx_obj_7setools_9policyrep_FileContexts),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_FileContexts_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_FileContexts = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""FileContexts", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_FileContexts), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_FileContexts, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_FileContexts, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_FileContexts, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_FileContexts, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_FileContexts, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_FileContexts, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsFiletype(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __Pyx_PyType_GetSlot((&PyLong_Type), tp_new, newfunc)(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_GenfsFiletype(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_GenfsFiletype) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_PyType_GetSlot((&PyLong_Type), tp_dealloc, destructor)(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_GenfsFiletype[] = {
  {"from_class", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13GenfsFiletype_1from_class, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13GenfsFiletype_from_class},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13GenfsFiletype_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13GenfsFiletype_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_GenfsFiletype_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_GenfsFiletype},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_13GenfsFiletype_3__str__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    A genfscon file type.\n\n    The possible values are equivalent to file type\n    values in the stat module, e.g. S_IFBLK, but\n    overrides the string representation with the\n    corresponding genfscon file type string\n    (-b, -c, etc.)  If the genfscon has no specific\n    file type, this is 0, (empty string).\n    ")},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_GenfsFiletype},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_GenfsFiletype},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_GenfsFiletype_spec = {
  "setools.policyrep.GenfsFiletype",
  sizeof(struct __pyx_obj_7setools_9policyrep_GenfsFiletype),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7setools_9policyrep_GenfsFiletype_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_GenfsFiletype = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""GenfsFiletype", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_GenfsFiletype), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_GenfsFiletype, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_13GenfsFiletype_3__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  PyDoc_STR("\n    A genfscon file type.\n\n    The possible values are equivalent to file type\n    values in the stat module, e.g. S_IFBLK, but\n    overrides the string representation with the\n    corresponding genfscon file type string\n    (-b, -c, etc.)  If the genfscon has no specific\n    file type, this is 0, (empty string).\n    "), /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_GenfsFiletype, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_GenfsFiletype, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_GenfsconIterator __pyx_vtable_7setools_9policyrep_GenfsconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsconIterator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_GenfsconIterator *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_GenfsconIterator;
  p->ocon_iter = Py_None; Py_INCREF(Py_None);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_GenfsconIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_GenfsconIterator *p = (struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_GenfsconIterator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ocon_iter);
  Py_CLEAR(p->policy);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_7setools_9policyrep_GenfsconIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_GenfsconIterator *p = (struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->ocon_iter) {
    e = (*v)(p->ocon_iter, a); if (e) return e;
  }
  if (p->policy) {
    e = (*v)(((PyObject *)p->policy), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_GenfsconIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_GenfsconIterator *p = (struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)o;
  tmp = ((PyObject*)p->ocon_iter);
  p->ocon_iter = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->policy);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_GenfsconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16GenfsconIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16GenfsconIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_GenfsconIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_GenfsconIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_16GenfsconIterator_5__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_16GenfsconIterator_5__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for genfscon statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_GenfsconIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_GenfsconIterator},
  {Py_tp_iter, (void *)__pyx_pw_7setools_9policyrep_16GenfsconIterator_1__iter__},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_GenfsconIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_GenfsconIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_GenfsconIterator_spec = {
  "setools.policyrep.GenfsconIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_GenfsconIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_GenfsconIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_GenfsconIterator = {
  __pyx_pw_7setools_9policyrep_16GenfsconIterator_5__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_GenfsconIterator = {
  __pyx_pw_7setools_9policyrep_16GenfsconIterator_5__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_GenfsconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""GenfsconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_GenfsconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_GenfsconIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_GenfsconIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_GenfsconIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for genfscon statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_GenfsconIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_GenfsconIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_7setools_9policyrep_16GenfsconIterator_1__iter__, /*tp_iter*/
  __pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_GenfsconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_GenfsconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_vtable_7setools_9policyrep_PolicyObject;

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyObject(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicyObject *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicyObject *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PolicyObject;
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_PolicyObject *p = (struct __pyx_obj_7setools_9policyrep_PolicyObject *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_PolicyObject) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->policy);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_7setools_9policyrep_PolicyObject(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_PolicyObject *p = (struct __pyx_obj_7setools_9policyrep_PolicyObject *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->policy) {
    e = (*v)(((PyObject *)p->policy), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_PolicyObject(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_PolicyObject *p = (struct __pyx_obj_7setools_9policyrep_PolicyObject *)o;
  tmp = ((PyObject*)p->policy);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_PolicyObject(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_12PolicyObject_policy(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12PolicyObject_6policy_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicyObject[] = {
  {"__copy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicyObject_3__copy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__deepcopy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicyObject_5__deepcopy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicyObject_17statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_12PolicyObject_16statement},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicyObject_19__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicyObject_21__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_PolicyObject[] = {
  {"policy", __pyx_getprop_7setools_9policyrep_12PolicyObject_policy, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_PolicyObject_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyObject},
  {Py_tp_repr, (void *)__pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_12PolicyObject_1__hash__},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_12PolicyObject_13__str__},
  {Py_tp_doc, (void *)PyDoc_STR("This is a base class for all policy objects.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyObject},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyObject},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_PolicyObject},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_PolicyObject},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_PolicyObject},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PolicyObject},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_PolicyObject_spec = {
  "setools.policyrep.PolicyObject",
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyObject),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_PolicyObject_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_PolicyObject = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""PolicyObject", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyObject), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_12PolicyObject_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("This is a base class for all policy objects."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyObject, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyObject, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_PolicyObject, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicyObject, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_PolicyObject, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyObject, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Range __pyx_vtable_7setools_9policyrep_Range;

static PyObject *__pyx_tp_new_7setools_9policyrep_Range(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Range *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Range *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Range;
  p->low = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  p->high = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Range(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Range *p = (struct __pyx_obj_7setools_9policyrep_Range *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Range) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->low);
  Py_CLEAR(p->high);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Range(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Range *p = (struct __pyx_obj_7setools_9policyrep_Range *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->low) {
    e = (*v)(((PyObject *)p->low), a); if (e) return e;
  }
  if (p->high) {
    e = (*v)(((PyObject *)p->high), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Range(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Range *p = (struct __pyx_obj_7setools_9policyrep_Range *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->low);
  p->low = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->high);
  p->high = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Range(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_5Range_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_5Range_15__lt__(o1, o2);
    }
    case Py_GT: {
      return __pyx_pw_7setools_9policyrep_5Range_11__gt__(o1, o2);
    }
    case Py_LE: {
      return __pyx_pw_7setools_9policyrep_5Range_13__le__(o1, o2);
    }
    case Py_GE: {
      return __pyx_pw_7setools_9policyrep_5Range_9__ge__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static CYTHON_INLINE PyObject *__pyx_nb_xor_7setools_9policyrep_Range_maybe_call_slot(PyTypeObject* type, PyObject *left, PyObject *right ) {
    binaryfunc slot;
#if CYTHON_USE_TYPE_SLOTS
    slot = type->tp_as_number ? type->tp_as_number->nb_xor : NULL;
#else
    slot = (binaryfunc) PyType_GetSlot(type, Py_nb_xor);
#endif
    return slot ? slot(left, right ) : __Pyx_NewRef(Py_NotImplemented);
}
static PyObject *__pyx_nb_xor_7setools_9policyrep_Range(PyObject *left, PyObject *right ) {
    int maybe_self_is_left, maybe_self_is_right = 0;
    maybe_self_is_left = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(left)->tp_as_number && Py_TYPE(left)->tp_as_number->nb_xor == &__pyx_nb_xor_7setools_9policyrep_Range)
#endif
            || __Pyx_TypeCheck(left, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range);
    if (maybe_self_is_left) {
        PyObject *res;
        res = __pyx_pw_7setools_9policyrep_5Range_17__xor__(left, right);
        if (res != Py_NotImplemented) return res;
        Py_DECREF(res);
    }
    maybe_self_is_right = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(right)->tp_as_number && Py_TYPE(right)->tp_as_number->nb_xor == &__pyx_nb_xor_7setools_9policyrep_Range)
#endif
            || PyType_IsSubtype(Py_TYPE(right), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range);
    if (maybe_self_is_right) {
        return __pyx_nb_xor_7setools_9policyrep_Range_maybe_call_slot(__Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range, tp_base, PyTypeObject*), left, right );
    }
    return __Pyx_NewRef(Py_NotImplemented);
}



static PyObject *__pyx_getprop_7setools_9policyrep_5Range_low(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_5Range_3low_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_5Range_high(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_5Range_4high_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Range[] = {
  {"__xor__", (PyCFunction)__pyx_pw_7setools_9policyrep_5Range_17__xor__, METH_O|METH_COEXIST, 0},
  {"dom", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Range_19dom, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_5Range_18dom},
  {"domby", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Range_21domby, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_5Range_20domby},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Range_23statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Range_25__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Range_27__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Range[] = {
  {"low", __pyx_getprop_7setools_9policyrep_5Range_low, 0, 0, 0},
  {"high", __pyx_getprop_7setools_9policyrep_5Range_high, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Range_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Range},
  {Py_nb_xor, (void *)__pyx_nb_xor_7setools_9policyrep_Range},
  {Py_sq_contains, (void *)__pyx_pw_7setools_9policyrep_5Range_5__contains__},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_5Range_3__hash__},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_5Range_1__str__},
  {Py_tp_doc, (void *)PyDoc_STR("An MLS range")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Range},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Range},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Range},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Range},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Range},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Range},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Range_spec = {
  "setools.policyrep.Range",
  sizeof(struct __pyx_obj_7setools_9policyrep_Range),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Range_slots,
};
#else

static PyNumberMethods __pyx_tp_as_number_Range = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_bool*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  __pyx_nb_xor_7setools_9policyrep_Range, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_int*/
  0, /*nb_long (reserved)*/
  0, /*nb_float*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  0, /*nb_matrix_multiply*/
  0, /*nb_inplace_matrix_multiply*/
};

static PySequenceMethods __pyx_tp_as_sequence_Range = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_5Range_5__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_Range = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Range", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Range), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Range, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  &__pyx_tp_as_number_Range, /*tp_as_number*/
  &__pyx_tp_as_sequence_Range, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_5Range_3__hash__, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_5Range_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("An MLS range"), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Range, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Range, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Range, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Range, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Range, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Range, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_BaseMLSLevel __pyx_vtable_7setools_9policyrep_BaseMLSLevel;

static PyObject *__pyx_tp_new_7setools_9policyrep_BaseMLSLevel(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_BaseMLSLevel;
  p->_categories = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *p = (struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_categories);
  Py_CLEAR(p->sensitivity);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_BaseMLSLevel(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *p = (struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_categories) {
    e = (*v)(p->_categories, a); if (e) return e;
  }
  if (p->sensitivity) {
    e = (*v)(((PyObject *)p->sensitivity), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_BaseMLSLevel(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *p = (struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_categories);
  p->_categories = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->sensitivity);
  p->sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_12BaseMLSLevel_sensitivity(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12BaseMLSLevel_11sensitivity_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_BaseMLSLevel[] = {
  {"categories", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_3categories, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_12BaseMLSLevel_2categories},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_BaseMLSLevel[] = {
  {"sensitivity", __pyx_getprop_7setools_9policyrep_12BaseMLSLevel_sensitivity, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_BaseMLSLevel_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_1__str__},
  {Py_tp_doc, (void *)PyDoc_STR("Base class for MLS levels.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_BaseMLSLevel},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_BaseMLSLevel},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_BaseMLSLevel},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_BaseMLSLevel},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_BaseMLSLevel},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_BaseMLSLevel_spec = {
  "setools.policyrep.BaseMLSLevel",
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_BaseMLSLevel_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_BaseMLSLevel = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""BaseMLSLevel", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_12BaseMLSLevel_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Base class for MLS levels."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseMLSLevel, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseMLSLevel, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_BaseMLSLevel, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_BaseMLSLevel, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_BaseMLSLevel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Level __pyx_vtable_7setools_9policyrep_Level;

static PyObject *__pyx_tp_new_7setools_9policyrep_Level(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Level *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseMLSLevel(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Level *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Level;
  return o;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Level(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_5Level_3__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_5Level_11__lt__(o1, o2);
    }
    case Py_GT: {
      return __pyx_pw_7setools_9policyrep_5Level_7__gt__(o1, o2);
    }
    case Py_LE: {
      return __pyx_pw_7setools_9policyrep_5Level_9__le__(o1, o2);
    }
    case Py_GE: {
      return __pyx_pw_7setools_9policyrep_5Level_5__ge__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static CYTHON_INLINE PyObject *__pyx_nb_xor_7setools_9policyrep_Level_maybe_call_slot(PyTypeObject* type, PyObject *left, PyObject *right ) {
    binaryfunc slot;
#if CYTHON_USE_TYPE_SLOTS
    slot = type->tp_as_number ? type->tp_as_number->nb_xor : NULL;
#else
    slot = (binaryfunc) PyType_GetSlot(type, Py_nb_xor);
#endif
    return slot ? slot(left, right ) : __Pyx_NewRef(Py_NotImplemented);
}
static PyObject *__pyx_nb_xor_7setools_9policyrep_Level(PyObject *left, PyObject *right ) {
    int maybe_self_is_left, maybe_self_is_right = 0;
    maybe_self_is_left = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(left)->tp_as_number && Py_TYPE(left)->tp_as_number->nb_xor == &__pyx_nb_xor_7setools_9policyrep_Level)
#endif
            || __Pyx_TypeCheck(left, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level);
    if (maybe_self_is_left) {
        PyObject *res;
        res = __pyx_pw_7setools_9policyrep_5Level_13__xor__(left, right);
        if (res != Py_NotImplemented) return res;
        Py_DECREF(res);
    }
    maybe_self_is_right = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(right)->tp_as_number && Py_TYPE(right)->tp_as_number->nb_xor == &__pyx_nb_xor_7setools_9policyrep_Level)
#endif
            || PyType_IsSubtype(Py_TYPE(right), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level);
    if (maybe_self_is_right) {
        return __pyx_nb_xor_7setools_9policyrep_Level_maybe_call_slot(__Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level, tp_base, PyTypeObject*), left, right );
    }
    return __Pyx_NewRef(Py_NotImplemented);
}



static PyMethodDef __pyx_methods_7setools_9policyrep_Level[] = {
  {"__xor__", (PyCFunction)__pyx_pw_7setools_9policyrep_5Level_13__xor__, METH_O|METH_COEXIST, 0},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Level_15statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Level_17__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5Level_19__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Level_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel},
  {Py_nb_xor, (void *)__pyx_nb_xor_7setools_9policyrep_Level},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_5Level_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    An MLS level used in contexts.\n\n    The _sensitivity and _categories attributes are only populated\n    if the level is user-generated.\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_BaseMLSLevel},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_BaseMLSLevel},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Level},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Level},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Level},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Level_spec = {
  "setools.policyrep.Level",
  sizeof(struct __pyx_obj_7setools_9policyrep_Level),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Level_slots,
};
#else

static PyNumberMethods __pyx_tp_as_number_Level = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_bool*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  __pyx_nb_xor_7setools_9policyrep_Level, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_int*/
  0, /*nb_long (reserved)*/
  0, /*nb_float*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  0, /*nb_matrix_multiply*/
  0, /*nb_inplace_matrix_multiply*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_Level = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Level", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Level), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  &__pyx_tp_as_number_Level, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_5Level_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12BaseMLSLevel_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    An MLS level used in contexts.\n\n    The _sensitivity and _categories attributes are only populated\n    if the level is user-generated.\n    "), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseMLSLevel, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseMLSLevel, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Level, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Level, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Level, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_LevelDecl __pyx_vtable_7setools_9policyrep_LevelDecl;

static PyObject *__pyx_tp_new_7setools_9policyrep_LevelDecl(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_LevelDecl *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseMLSLevel(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_LevelDecl;
  return o;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_LevelDecl(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_9LevelDecl_3__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_9LevelDecl_11__lt__(o1, o2);
    }
    case Py_GT: {
      return __pyx_pw_7setools_9policyrep_9LevelDecl_7__gt__(o1, o2);
    }
    case Py_LE: {
      return __pyx_pw_7setools_9policyrep_9LevelDecl_9__le__(o1, o2);
    }
    case Py_GE: {
      return __pyx_pw_7setools_9policyrep_9LevelDecl_5__ge__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyMethodDef __pyx_methods_7setools_9policyrep_LevelDecl[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9LevelDecl_13statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9LevelDecl_15__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9LevelDecl_17__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_LevelDecl_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_9LevelDecl_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    The declaration statement for MLS levels, e.g:\n\n    level s7:c0.c1023;\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_BaseMLSLevel},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_BaseMLSLevel},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_LevelDecl},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_LevelDecl},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_LevelDecl},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_LevelDecl_spec = {
  "setools.policyrep.LevelDecl",
  sizeof(struct __pyx_obj_7setools_9policyrep_LevelDecl),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_LevelDecl_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_LevelDecl = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""LevelDecl", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_LevelDecl), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_9LevelDecl_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12BaseMLSLevel_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    The declaration statement for MLS levels, e.g:\n\n    level s7:c0.c1023;\n    "), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseMLSLevel, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseMLSLevel, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_LevelDecl, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_LevelDecl, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_LevelDecl, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Default __pyx_vtable_7setools_9policyrep_Default;

static PyObject *__pyx_tp_new_7setools_9policyrep_Default(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Default *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Default *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Default;
  p->ruletype = Py_None; Py_INCREF(Py_None);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  p->_default = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Default(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Default *p = (struct __pyx_obj_7setools_9policyrep_Default *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Default) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ruletype);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->_default);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Default(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Default *p = (struct __pyx_obj_7setools_9policyrep_Default *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->ruletype) {
    e = (*v)(p->ruletype, a); if (e) return e;
  }
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  if (p->_default) {
    e = (*v)(p->_default, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Default(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Default *p = (struct __pyx_obj_7setools_9policyrep_Default *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->ruletype);
  p->ruletype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_default);
  p->_default = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Default(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_7Default_1__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_7Default_5__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Default_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Default_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Default_ruletype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Default_8ruletype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Default_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Default_6tclass_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Default[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Default_7statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Default_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Default_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Default[] = {
  {"default", __pyx_getprop_7setools_9policyrep_7Default_default, 0, 0, 0},
  {"ruletype", __pyx_getprop_7setools_9policyrep_7Default_ruletype, 0, 0, 0},
  {"tclass", __pyx_getprop_7setools_9policyrep_7Default_tclass, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Default_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Default},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_7Default_3__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("Base class for default_* statements.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Default},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Default},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Default},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Default},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Default},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Default},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Default_spec = {
  "setools.policyrep.Default",
  sizeof(struct __pyx_obj_7setools_9policyrep_Default),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Default_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Default = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Default", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Default), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Default, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_7Default_3__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Base class for default_* statements."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Default, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Default, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Default, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Default, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Default, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Default, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_DefaultRange __pyx_vtable_7setools_9policyrep_DefaultRange;

static PyObject *__pyx_tp_new_7setools_9policyrep_DefaultRange(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_DefaultRange *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Default(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_DefaultRange *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_DefaultRange;
  p->default_range = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_DefaultRange(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_DefaultRange *p = (struct __pyx_obj_7setools_9policyrep_DefaultRange *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_DefaultRange) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->default_range);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Default(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_DefaultRange(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_DefaultRange *p = (struct __pyx_obj_7setools_9policyrep_DefaultRange *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Default(o, v, a); if (e) return e;
  if (p->default_range) {
    e = (*v)(p->default_range, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_DefaultRange(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_DefaultRange *p = (struct __pyx_obj_7setools_9policyrep_DefaultRange *)o;
  __pyx_tp_clear_7setools_9policyrep_Default(o);
  tmp = ((PyObject*)p->default_range);
  p->default_range = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_DefaultRange(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12DefaultRange_1__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12DefaultRange_5__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_12DefaultRange_default_range(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12DefaultRange_13default_range_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_DefaultRange[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12DefaultRange_7statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12DefaultRange_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12DefaultRange_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_DefaultRange[] = {
  {"default_range", __pyx_getprop_7setools_9policyrep_12DefaultRange_default_range, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_DefaultRange_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_DefaultRange},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_12DefaultRange_3__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("A default_range statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_DefaultRange},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_DefaultRange},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_DefaultRange},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_DefaultRange},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_DefaultRange},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_DefaultRange},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_DefaultRange_spec = {
  "setools.policyrep.DefaultRange",
  sizeof(struct __pyx_obj_7setools_9policyrep_DefaultRange),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_DefaultRange_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_DefaultRange = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""DefaultRange", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_DefaultRange), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_DefaultRange, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_12DefaultRange_3__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A default_range statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_DefaultRange, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_DefaultRange, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_DefaultRange, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_DefaultRange, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_DefaultRange, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_DefaultRange, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Context __pyx_vtable_7setools_9policyrep_Context;

static PyObject *__pyx_tp_new_7setools_9policyrep_Context(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Context *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Context *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Context;
  p->user = ((struct __pyx_obj_7setools_9policyrep_User *)Py_None); Py_INCREF(Py_None);
  p->role = ((struct __pyx_obj_7setools_9policyrep_Role *)Py_None); Py_INCREF(Py_None);
  p->type_ = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  p->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Context(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Context *p = (struct __pyx_obj_7setools_9policyrep_Context *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Context) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->user);
  Py_CLEAR(p->role);
  Py_CLEAR(p->type_);
  Py_CLEAR(p->_range);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Context(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Context *p = (struct __pyx_obj_7setools_9policyrep_Context *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->user) {
    e = (*v)(((PyObject *)p->user), a); if (e) return e;
  }
  if (p->role) {
    e = (*v)(((PyObject *)p->role), a); if (e) return e;
  }
  if (p->type_) {
    e = (*v)(((PyObject *)p->type_), a); if (e) return e;
  }
  if (p->_range) {
    e = (*v)(((PyObject *)p->_range), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Context(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Context *p = (struct __pyx_obj_7setools_9policyrep_Context *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->user);
  p->user = ((struct __pyx_obj_7setools_9policyrep_User *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->role);
  p->role = ((struct __pyx_obj_7setools_9policyrep_Role *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->type_);
  p->type_ = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_range);
  p->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Context_range_(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Context_6range__1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Context_user(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Context_4user_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Context_role(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Context_4role_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Context_type_(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Context_5type__1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Context[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Context_3statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Context_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Context_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Context[] = {
  {"range_", __pyx_getprop_7setools_9policyrep_7Context_range_, 0, PyDoc_STR("The MLS range of the context."), 0},
  {"user", __pyx_getprop_7setools_9policyrep_7Context_user, 0, 0, 0},
  {"role", __pyx_getprop_7setools_9policyrep_7Context_role, 0, 0, 0},
  {"type_", __pyx_getprop_7setools_9policyrep_7Context_type_, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Context_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Context},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_7Context_1__str__},
  {Py_tp_doc, (void *)PyDoc_STR("A SELinux security context/security attribute.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Context},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Context},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Context},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Context},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Context},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Context_spec = {
  "setools.policyrep.Context",
  sizeof(struct __pyx_obj_7setools_9policyrep_Context),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Context_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Context = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Context", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Context), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Context, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_7Context_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A SELinux security context/security attribute."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Context, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Context, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Context, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Context, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Context, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprNode __pyx_vtable_7setools_9policyrep_ConstraintExprNode;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExprNode(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_ConstraintExprNode;
  p->_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_expression = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ConstraintExprNode(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_ConstraintExprNode) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_names);
  Py_CLEAR(p->_expression);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ConstraintExprNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_names) {
    e = (*v)(p->_names, a); if (e) return e;
  }
  if (p->_expression) {
    e = (*v)(p->_expression, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ConstraintExprNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_names);
  p->_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_expression);
  p->_expression = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_sq_item_7setools_9policyrep_ConstraintExprNode(PyObject *o, Py_ssize_t i) {
  PyObject *r;
  PyObject *x = PyLong_FromSsize_t(i); if(!x) return 0;
  #if CYTHON_USE_TYPE_SLOTS || (!CYTHON_USE_TYPE_SPECS && __PYX_LIMITED_VERSION_HEX < 0x030A0000)
  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
  #else
  r = ((binaryfunc)PyType_GetSlot(Py_TYPE(o), Py_mp_subscript))(o, x);
  #endif
  Py_DECREF(x);
  return r;
}

static PyObject *__pyx_getprop_7setools_9policyrep_18ConstraintExprNode_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_18ConstraintExprNode_5names_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_18ConstraintExprNode_symbol_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_18ConstraintExprNode_11symbol_type_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConstraintExprNode[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_9statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_ConstraintExprNode[] = {
  {"names", __pyx_getprop_7setools_9policyrep_18ConstraintExprNode_names, 0, 0, 0},
  {"symbol_type", __pyx_getprop_7setools_9policyrep_18ConstraintExprNode_symbol_type, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_ConstraintExprNode_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_ConstraintExprNode},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_5__len__},
  {Py_sq_item, (void *)__pyx_sq_item_7setools_9policyrep_ConstraintExprNode},
  {Py_sq_contains, (void *)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_3__contains__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_5__len__},
  {Py_mp_subscript, (void *)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_7__getitem__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    A node of the low-level constraint expression.\n\n    This is an immutable list-like object that contains one node\n    of a constraint in postfix notation, e.g.:\n\n    [\"u1\", \"u2\", \"==\"]\n\n    This is only used for initializing a ConstraintExpression\n    object.\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_ConstraintExprNode},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_ConstraintExprNode},
  {Py_tp_iter, (void *)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_1__iter__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_ConstraintExprNode},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_ConstraintExprNode},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_ConstraintExprNode},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_ConstraintExprNode_spec = {
  "setools.policyrep.ConstraintExprNode",
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_ConstraintExprNode_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_ConstraintExprNode = {
  __pyx_pw_7setools_9policyrep_18ConstraintExprNode_5__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  __pyx_sq_item_7setools_9policyrep_ConstraintExprNode, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_18ConstraintExprNode_3__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConstraintExprNode = {
  __pyx_pw_7setools_9policyrep_18ConstraintExprNode_5__len__, /*mp_length*/
  __pyx_pw_7setools_9policyrep_18ConstraintExprNode_7__getitem__, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConstraintExprNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""ConstraintExprNode", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConstraintExprNode, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConstraintExprNode, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConstraintExprNode, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    A node of the low-level constraint expression.\n\n    This is an immutable list-like object that contains one node\n    of a constraint in postfix notation, e.g.:\n\n    [\"u1\", \"u2\", \"==\"]\n\n    This is only used for initializing a ConstraintExpression\n    object.\n    "), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConstraintExprNode, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConstraintExprNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_7setools_9policyrep_18ConstraintExprNode_1__iter__, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConstraintExprNode, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_ConstraintExprNode, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConstraintExprNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExpression __pyx_vtable_7setools_9policyrep_ConstraintExpression;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExpression(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_ConstraintExpression;
  p->_infix = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_postfix = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->users = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->roles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ConstraintExpression(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_ConstraintExpression) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_infix);
  Py_CLEAR(p->_postfix);
  Py_CLEAR(p->users);
  Py_CLEAR(p->roles);
  Py_CLEAR(p->types);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ConstraintExpression(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_infix) {
    e = (*v)(p->_infix, a); if (e) return e;
  }
  if (p->_postfix) {
    e = (*v)(p->_postfix, a); if (e) return e;
  }
  if (p->users) {
    e = (*v)(p->users, a); if (e) return e;
  }
  if (p->roles) {
    e = (*v)(p->roles, a); if (e) return e;
  }
  if (p->types) {
    e = (*v)(p->types, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ConstraintExpression(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_infix);
  p->_infix = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_postfix);
  p->_postfix = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->users);
  p->users = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->roles);
  p->roles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->types);
  p->types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_sq_item_7setools_9policyrep_ConstraintExpression(PyObject *o, Py_ssize_t i) {
  PyObject *r;
  PyObject *x = PyLong_FromSsize_t(i); if(!x) return 0;
  #if CYTHON_USE_TYPE_SLOTS || (!CYTHON_USE_TYPE_SPECS && __PYX_LIMITED_VERSION_HEX < 0x030A0000)
  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
  #else
  r = ((binaryfunc)PyType_GetSlot(Py_TYPE(o), Py_mp_subscript))(o, x);
  #endif
  Py_DECREF(x);
  return r;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_ConstraintExpression(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_20ConstraintExpression_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_20ConstraintExpression_mls(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_20ConstraintExpression_3mls_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_20ConstraintExpression_users(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_20ConstraintExpression_5users_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_20ConstraintExpression_roles(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_20ConstraintExpression_5roles_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_20ConstraintExpression_types(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_20ConstraintExpression_5types_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConstraintExpression[] = {
  {"infix", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20ConstraintExpression_9infix, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_20ConstraintExpression_8infix},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20ConstraintExpression_11statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20ConstraintExpression_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20ConstraintExpression_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_ConstraintExpression[] = {
  {"mls", __pyx_getprop_7setools_9policyrep_20ConstraintExpression_mls, 0, 0, 0},
  {"users", __pyx_getprop_7setools_9policyrep_20ConstraintExpression_users, 0, 0, 0},
  {"roles", __pyx_getprop_7setools_9policyrep_20ConstraintExpression_roles, 0, 0, 0},
  {"types", __pyx_getprop_7setools_9policyrep_20ConstraintExpression_types, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_ConstraintExpression_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_ConstraintExpression},
  {Py_sq_item, (void *)__pyx_sq_item_7setools_9policyrep_ConstraintExpression},
  {Py_mp_subscript, (void *)__pyx_pw_7setools_9policyrep_20ConstraintExpression_3__getitem__},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_20ConstraintExpression_1__str__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    A a list-like object representing a constraint's expression.\n\n    The expression is in postfix notation, as that is how it is stored in the policy.\n    The string representation, however, is in infix notation, as that is how it\n    is written by policy writers.\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_ConstraintExpression},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_ConstraintExpression},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_ConstraintExpression},
  {Py_tp_iter, (void *)__pyx_pw_7setools_9policyrep_20ConstraintExpression_5__iter__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_ConstraintExpression},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_ConstraintExpression},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_ConstraintExpression},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_ConstraintExpression_spec = {
  "setools.policyrep.ConstraintExpression",
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintExpression),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_ConstraintExpression_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_ConstraintExpression = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  __pyx_sq_item_7setools_9policyrep_ConstraintExpression, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConstraintExpression = {
  0, /*mp_length*/
  __pyx_pw_7setools_9policyrep_20ConstraintExpression_3__getitem__, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConstraintExpression = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""ConstraintExpression", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintExpression), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConstraintExpression, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConstraintExpression, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConstraintExpression, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_20ConstraintExpression_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    A a list-like object representing a constraint's expression.\n\n    The expression is in postfix notation, as that is how it is stored in the policy.\n    The string representation, however, is in infix notation, as that is how it\n    is written by policy writers.\n    "), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConstraintExpression, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConstraintExpression, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_ConstraintExpression, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_7setools_9policyrep_20ConstraintExpression_5__iter__, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConstraintExpression, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_ConstraintExpression, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConstraintExpression, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_BaseConstraint __pyx_vtable_7setools_9policyrep_BaseConstraint;

static PyObject *__pyx_tp_new_7setools_9policyrep_BaseConstraint(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_BaseConstraint *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_BaseConstraint;
  p->ruletype = Py_None; Py_INCREF(Py_None);
  p->tclass = Py_None; Py_INCREF(Py_None);
  p->expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_BaseConstraint(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_BaseConstraint *p = (struct __pyx_obj_7setools_9policyrep_BaseConstraint *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_BaseConstraint) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ruletype);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->expression);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_BaseConstraint(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_BaseConstraint *p = (struct __pyx_obj_7setools_9policyrep_BaseConstraint *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->ruletype) {
    e = (*v)(p->ruletype, a); if (e) return e;
  }
  if (p->tclass) {
    e = (*v)(p->tclass, a); if (e) return e;
  }
  if (p->expression) {
    e = (*v)(((PyObject *)p->expression), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_BaseConstraint(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_BaseConstraint *p = (struct __pyx_obj_7setools_9policyrep_BaseConstraint *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->ruletype);
  p->ruletype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->tclass);
  p->tclass = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->expression);
  p->expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_14BaseConstraint_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14BaseConstraint_5perms_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14BaseConstraint_ruletype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14BaseConstraint_8ruletype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14BaseConstraint_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14BaseConstraint_6tclass_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14BaseConstraint_expression(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14BaseConstraint_10expression_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_BaseConstraint[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14BaseConstraint_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14BaseConstraint_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_BaseConstraint[] = {
  {"perms", __pyx_getprop_7setools_9policyrep_14BaseConstraint_perms, 0, 0, 0},
  {"ruletype", __pyx_getprop_7setools_9policyrep_14BaseConstraint_ruletype, 0, 0, 0},
  {"tclass", __pyx_getprop_7setools_9policyrep_14BaseConstraint_tclass, 0, 0, 0},
  {"expression", __pyx_getprop_7setools_9policyrep_14BaseConstraint_expression, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_BaseConstraint_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_BaseConstraint},
  {Py_tp_doc, (void *)PyDoc_STR("Base class for constraint rules.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_BaseConstraint},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_BaseConstraint},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_BaseConstraint},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_BaseConstraint},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_BaseConstraint},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_BaseConstraint_spec = {
  "setools.policyrep.BaseConstraint",
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseConstraint),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_BaseConstraint_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_BaseConstraint = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""BaseConstraint", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseConstraint), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseConstraint, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Base class for constraint rules."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseConstraint, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseConstraint, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_BaseConstraint, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_BaseConstraint, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_BaseConstraint, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Validatetrans __pyx_vtable_7setools_9policyrep_Validatetrans;

static PyObject *__pyx_tp_new_7setools_9policyrep_Validatetrans(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Validatetrans *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseConstraint(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Validatetrans *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Validatetrans;
  return o;
}

static PyObject *__pyx_getprop_7setools_9policyrep_13Validatetrans_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13Validatetrans_5perms_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Validatetrans[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Validatetrans_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Validatetrans_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Validatetrans_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Validatetrans[] = {
  {"perms", __pyx_getprop_7setools_9policyrep_13Validatetrans_perms, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Validatetrans_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_BaseConstraint},
  {Py_tp_doc, (void *)PyDoc_STR("A validatetrans rule (validatetrans/mlsvalidatetrans).")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_BaseConstraint},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_BaseConstraint},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Validatetrans},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Validatetrans},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Validatetrans},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Validatetrans_spec = {
  "setools.policyrep.Validatetrans",
  sizeof(struct __pyx_obj_7setools_9policyrep_Validatetrans),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Validatetrans_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Validatetrans = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Validatetrans", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Validatetrans), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseConstraint, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A validatetrans rule (validatetrans/mlsvalidatetrans)."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseConstraint, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseConstraint, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Validatetrans, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Validatetrans, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Validatetrans, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Constraint __pyx_vtable_7setools_9policyrep_Constraint;

static PyObject *__pyx_tp_new_7setools_9policyrep_Constraint(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Constraint *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseConstraint(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Constraint *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Constraint;
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Constraint(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Constraint *p = (struct __pyx_obj_7setools_9policyrep_Constraint *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Constraint) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->perms);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_BaseConstraint(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Constraint(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Constraint *p = (struct __pyx_obj_7setools_9policyrep_Constraint *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_BaseConstraint(o, v, a); if (e) return e;
  if (p->perms) {
    e = (*v)(p->perms, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Constraint(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Constraint *p = (struct __pyx_obj_7setools_9policyrep_Constraint *)o;
  __pyx_tp_clear_7setools_9policyrep_BaseConstraint(o);
  tmp = ((PyObject*)p->perms);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_10Constraint_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10Constraint_5perms_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Constraint[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10Constraint_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10Constraint_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10Constraint_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Constraint[] = {
  {"perms", __pyx_getprop_7setools_9policyrep_10Constraint_perms, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Constraint_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Constraint},
  {Py_tp_doc, (void *)PyDoc_STR("A constraint rule (constrain/mlsconstrain).")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Constraint},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Constraint},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Constraint},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Constraint},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Constraint},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Constraint_spec = {
  "setools.policyrep.Constraint",
  sizeof(struct __pyx_obj_7setools_9policyrep_Constraint),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Constraint_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Constraint = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Constraint", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Constraint), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Constraint, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A constraint rule (constrain/mlsconstrain)."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Constraint, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Constraint, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Constraint, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Constraint, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Constraint, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Bounds __pyx_vtable_7setools_9policyrep_Bounds;

static PyObject *__pyx_tp_new_7setools_9policyrep_Bounds(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Bounds *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Bounds *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Bounds;
  p->ruletype = Py_None; Py_INCREF(Py_None);
  p->parent = Py_None; Py_INCREF(Py_None);
  p->child = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Bounds(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Bounds *p = (struct __pyx_obj_7setools_9policyrep_Bounds *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Bounds) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ruletype);
  Py_CLEAR(p->parent);
  Py_CLEAR(p->child);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Bounds(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Bounds *p = (struct __pyx_obj_7setools_9policyrep_Bounds *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->ruletype) {
    e = (*v)(p->ruletype, a); if (e) return e;
  }
  if (p->parent) {
    e = (*v)(p->parent, a); if (e) return e;
  }
  if (p->child) {
    e = (*v)(p->child, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Bounds(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Bounds *p = (struct __pyx_obj_7setools_9policyrep_Bounds *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->ruletype);
  p->ruletype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->parent);
  p->parent = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->child);
  p->child = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Bounds(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_6Bounds_3__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_6Bounds_5__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_6Bounds_ruletype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6Bounds_8ruletype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_6Bounds_parent(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6Bounds_6parent_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_6Bounds_child(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6Bounds_5child_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Bounds[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Bounds_7statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Bounds_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Bounds_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Bounds[] = {
  {"ruletype", __pyx_getprop_7setools_9policyrep_6Bounds_ruletype, 0, 0, 0},
  {"parent", __pyx_getprop_7setools_9policyrep_6Bounds_parent, 0, 0, 0},
  {"child", __pyx_getprop_7setools_9policyrep_6Bounds_child, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Bounds_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Bounds},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_6Bounds_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("A bounds statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Bounds},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Bounds},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Bounds},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Bounds},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Bounds},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Bounds},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Bounds_spec = {
  "setools.policyrep.Bounds",
  sizeof(struct __pyx_obj_7setools_9policyrep_Bounds),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Bounds_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Bounds = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Bounds", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Bounds), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Bounds, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_6Bounds_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A bounds statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Bounds, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Bounds, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Bounds, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Bounds, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Bounds, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Bounds, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalOperator __pyx_vtable_7setools_9policyrep_ConditionalOperator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalOperator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_ConditionalOperator;
  p->text = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->evaluate = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ConditionalOperator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_ConditionalOperator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->text);
  Py_CLEAR(p->evaluate);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ConditionalOperator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->evaluate) {
    e = (*v)(p->evaluate, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ConditionalOperator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->evaluate);
  p->evaluate = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_19ConditionalOperator_precedence(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_19ConditionalOperator_10precedence_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_19ConditionalOperator_unary(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_19ConditionalOperator_5unary_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_19ConditionalOperator_evaluate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_19ConditionalOperator_8evaluate_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConditionalOperator[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_3statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_ConditionalOperator[] = {
  {"precedence", __pyx_getprop_7setools_9policyrep_19ConditionalOperator_precedence, 0, 0, 0},
  {"unary", __pyx_getprop_7setools_9policyrep_19ConditionalOperator_unary, 0, 0, 0},
  {"evaluate", __pyx_getprop_7setools_9policyrep_19ConditionalOperator_evaluate, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_ConditionalOperator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_ConditionalOperator},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_19ConditionalOperator_1__str__},
  {Py_tp_doc, (void *)PyDoc_STR("A conditional expression operator")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_ConditionalOperator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_ConditionalOperator},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_ConditionalOperator},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_ConditionalOperator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_ConditionalOperator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_ConditionalOperator_spec = {
  "setools.policyrep.ConditionalOperator",
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalOperator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_ConditionalOperator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_ConditionalOperator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""ConditionalOperator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalOperator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConditionalOperator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_19ConditionalOperator_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A conditional expression operator"), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConditionalOperator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConditionalOperator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConditionalOperator, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_ConditionalOperator, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConditionalOperator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Conditional __pyx_vtable_7setools_9policyrep_Conditional;

static PyObject *__pyx_tp_new_7setools_9policyrep_Conditional(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Conditional *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Conditional *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Conditional;
  p->_postfix_expression = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->booleans = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Conditional(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Conditional *p = (struct __pyx_obj_7setools_9policyrep_Conditional *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Conditional) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_postfix_expression);
  Py_CLEAR(p->booleans);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Conditional(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Conditional *p = (struct __pyx_obj_7setools_9policyrep_Conditional *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_postfix_expression) {
    e = (*v)(p->_postfix_expression, a); if (e) return e;
  }
  if (p->booleans) {
    e = (*v)(p->booleans, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Conditional(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Conditional *p = (struct __pyx_obj_7setools_9policyrep_Conditional *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_postfix_expression);
  p->_postfix_expression = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->booleans);
  p->booleans = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Conditional(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_11Conditional_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_11Conditional_booleans(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_11Conditional_8booleans_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Conditional[] = {
  {"evaluate", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_9evaluate, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Conditional_8evaluate},
  {"expression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_11expression, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Conditional_10expression},
  {"false_rules", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_13false_rules, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Conditional_12false_rules},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_15statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"true_rules", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_17true_rules, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Conditional_16true_rules},
  {"truth_table", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_19truth_table, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Conditional_18truth_table},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_21__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_23__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Conditional[] = {
  {"booleans", __pyx_getprop_7setools_9policyrep_11Conditional_booleans, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Conditional_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Conditional},
  {Py_sq_contains, (void *)__pyx_pw_7setools_9policyrep_11Conditional_1__contains__},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_11Conditional_5__hash__},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_11Conditional_3__str__},
  {Py_tp_doc, (void *)PyDoc_STR("A conditional policy block.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Conditional},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Conditional},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Conditional},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Conditional},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Conditional},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Conditional},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Conditional_spec = {
  "setools.policyrep.Conditional",
  sizeof(struct __pyx_obj_7setools_9policyrep_Conditional),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Conditional_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_Conditional = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_11Conditional_1__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_Conditional = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Conditional", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Conditional), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Conditional, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_Conditional, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_11Conditional_5__hash__, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_11Conditional_3__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A conditional policy block."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Conditional, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Conditional, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Conditional, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Conditional, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Conditional, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Conditional, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_vtable_7setools_9policyrep_PolicySymbol;

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicySymbol(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  p->name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol *p = (struct __pyx_obj_7setools_9policyrep_PolicySymbol *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->name);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_12PolicySymbol_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12PolicySymbol_4name_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicySymbol[] = {
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicySymbol_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_12PolicySymbol_4expand},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicySymbol_8__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12PolicySymbol_10__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_PolicySymbol[] = {
  {"name", __pyx_getprop_7setools_9policyrep_12PolicySymbol_name, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_PolicySymbol_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicySymbol},
  {Py_sq_contains, (void *)__pyx_pw_7setools_9policyrep_12PolicySymbol_1__contains__},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__},
  {Py_tp_doc, (void *)PyDoc_STR("Base class for policy symbols (declared objects: types, users, etc.)")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyObject},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyObject},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_PolicySymbol},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_PolicySymbol},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PolicySymbol},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_PolicySymbol_spec = {
  "setools.policyrep.PolicySymbol",
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicySymbol),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_PolicySymbol_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_PolicySymbol = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_PolicySymbol = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""PolicySymbol", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicySymbol), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_PolicySymbol, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Base class for policy symbols (declared objects: types, users, etc.)"), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyObject, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyObject, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicySymbol, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_PolicySymbol, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicySymbol, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_ObjClass __pyx_vtable_7setools_9policyrep_ObjClass;

static PyObject *__pyx_tp_new_7setools_9policyrep_ObjClass(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ObjClass *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_ObjClass;
  p->_common = ((struct __pyx_obj_7setools_9policyrep_Common *)Py_None); Py_INCREF(Py_None);
  p->_perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_defaults = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_constraints = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_validatetrans = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ObjClass(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ObjClass *p = (struct __pyx_obj_7setools_9policyrep_ObjClass *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_ObjClass) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_common);
  Py_CLEAR(p->_perm_table);
  Py_CLEAR(p->_defaults);
  Py_CLEAR(p->_constraints);
  Py_CLEAR(p->_validatetrans);
  Py_CLEAR(p->perms);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ObjClass(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ObjClass *p = (struct __pyx_obj_7setools_9policyrep_ObjClass *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_common) {
    e = (*v)(((PyObject *)p->_common), a); if (e) return e;
  }
  if (p->_perm_table) {
    e = (*v)(p->_perm_table, a); if (e) return e;
  }
  if (p->_defaults) {
    e = (*v)(p->_defaults, a); if (e) return e;
  }
  if (p->_constraints) {
    e = (*v)(p->_constraints, a); if (e) return e;
  }
  if (p->_validatetrans) {
    e = (*v)(p->_validatetrans, a); if (e) return e;
  }
  if (p->perms) {
    e = (*v)(p->perms, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ObjClass(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ObjClass *p = (struct __pyx_obj_7setools_9policyrep_ObjClass *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_common);
  p->_common = ((struct __pyx_obj_7setools_9policyrep_Common *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_perm_table);
  p->_perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_defaults);
  p->_defaults = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_constraints);
  p->_constraints = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_validatetrans);
  p->_validatetrans = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->perms);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_8ObjClass_common(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8ObjClass_6common_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_8ObjClass_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8ObjClass_5perms_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ObjClass[] = {
  {"constraints", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_3constraints, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8ObjClass_2constraints},
  {"defaults", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_5defaults, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8ObjClass_4defaults},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_7statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"validatetrans", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_9validatetrans, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8ObjClass_8validatetrans},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8ObjClass_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_ObjClass[] = {
  {"common", __pyx_getprop_7setools_9policyrep_8ObjClass_common, 0, PyDoc_STR("\n        The common that the object class inherits.\n\n        Exceptions:\n        NoCommon    The object class does not inherit a common.\n        "), 0},
  {"perms", __pyx_getprop_7setools_9policyrep_8ObjClass_perms, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_ObjClass_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_ObjClass},
  {Py_sq_contains, (void *)__pyx_pw_7setools_9policyrep_8ObjClass_1__contains__},
  {Py_tp_doc, (void *)PyDoc_STR("An object class.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_ObjClass},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_ObjClass},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_ObjClass},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_ObjClass},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_ObjClass},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_ObjClass_spec = {
  "setools.policyrep.ObjClass",
  sizeof(struct __pyx_obj_7setools_9policyrep_ObjClass),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_ObjClass_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_ObjClass = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_8ObjClass_1__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ObjClass = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""ObjClass", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ObjClass), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ObjClass, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ObjClass, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("An object class."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ObjClass, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ObjClass, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ObjClass, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_ObjClass, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ObjClass, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Common __pyx_vtable_7setools_9policyrep_Common;

static PyObject *__pyx_tp_new_7setools_9policyrep_Common(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Common *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Common *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Common;
  p->_perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Common(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Common *p = (struct __pyx_obj_7setools_9policyrep_Common *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Common) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_perm_table);
  Py_CLEAR(p->perms);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Common(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Common *p = (struct __pyx_obj_7setools_9policyrep_Common *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_perm_table) {
    e = (*v)(p->_perm_table, a); if (e) return e;
  }
  if (p->perms) {
    e = (*v)(p->perms, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Common(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Common *p = (struct __pyx_obj_7setools_9policyrep_Common *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_perm_table);
  p->_perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->perms);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_6Common_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6Common_5perms_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Common[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Common_3statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Common_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6Common_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Common[] = {
  {"perms", __pyx_getprop_7setools_9policyrep_6Common_perms, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Common_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Common},
  {Py_sq_contains, (void *)__pyx_pw_7setools_9policyrep_6Common_1__contains__},
  {Py_tp_doc, (void *)PyDoc_STR("A common permission set.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Common},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Common},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Common},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Common},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Common},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Common_spec = {
  "setools.policyrep.Common",
  sizeof(struct __pyx_obj_7setools_9policyrep_Common),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Common_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_Common = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_6Common_1__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_Common = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Common", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Common), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Common, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_Common, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A common permission set."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Common, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Common, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Common, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Common, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Common, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Sensitivity __pyx_vtable_7setools_9policyrep_Sensitivity;

static PyObject *__pyx_tp_new_7setools_9policyrep_Sensitivity(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Sensitivity *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Sensitivity;
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_leveldecl = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Sensitivity(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Sensitivity *p = (struct __pyx_obj_7setools_9policyrep_Sensitivity *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Sensitivity) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_aliases);
  Py_CLEAR(p->_leveldecl);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Sensitivity(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Sensitivity *p = (struct __pyx_obj_7setools_9policyrep_Sensitivity *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_aliases) {
    e = (*v)(p->_aliases, a); if (e) return e;
  }
  if (p->_leveldecl) {
    e = (*v)(((PyObject *)p->_leveldecl), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Sensitivity(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Sensitivity *p = (struct __pyx_obj_7setools_9policyrep_Sensitivity *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_aliases);
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_leveldecl);
  p->_leveldecl = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Sensitivity(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_11Sensitivity_9__lt__(o1, o2);
    }
    case Py_GT: {
      return __pyx_pw_7setools_9policyrep_11Sensitivity_5__gt__(o1, o2);
    }
    case Py_LE: {
      return __pyx_pw_7setools_9policyrep_11Sensitivity_7__le__(o1, o2);
    }
    case Py_GE: {
      return __pyx_pw_7setools_9policyrep_11Sensitivity_3__ge__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_11Sensitivity__value(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_11Sensitivity_6_value_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Sensitivity[] = {
  {"aliases", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Sensitivity_11aliases, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Sensitivity_10aliases},
  {"level_decl", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Sensitivity_13level_decl, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Sensitivity_12level_decl},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Sensitivity_15statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Sensitivity_17__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11Sensitivity_19__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Sensitivity[] = {
  {"_value", __pyx_getprop_7setools_9policyrep_11Sensitivity__value, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Sensitivity_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Sensitivity},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_11Sensitivity_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("An MLS sensitivity")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Sensitivity},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Sensitivity},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Sensitivity},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Sensitivity},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Sensitivity},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Sensitivity},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Sensitivity_spec = {
  "setools.policyrep.Sensitivity",
  sizeof(struct __pyx_obj_7setools_9policyrep_Sensitivity),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Sensitivity_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Sensitivity = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Sensitivity", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Sensitivity), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Sensitivity, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_11Sensitivity_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("An MLS sensitivity"), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Sensitivity, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Sensitivity, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Sensitivity, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Sensitivity, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Sensitivity, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Sensitivity, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Category __pyx_vtable_7setools_9policyrep_Category;

static PyObject *__pyx_tp_new_7setools_9policyrep_Category(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Category *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Category *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Category;
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Category(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Category *p = (struct __pyx_obj_7setools_9policyrep_Category *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Category) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_aliases);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Category(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Category *p = (struct __pyx_obj_7setools_9policyrep_Category *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_aliases) {
    e = (*v)(p->_aliases, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Category(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Category *p = (struct __pyx_obj_7setools_9policyrep_Category *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_aliases);
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Category(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_8Category_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Category__value(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Category_6_value_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Category[] = {
  {"aliases", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Category_5aliases, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8Category_4aliases},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Category_7statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Category_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Category_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Category[] = {
  {"_value", __pyx_getprop_7setools_9policyrep_8Category__value, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Category_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Category},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_8Category_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("An MLS category.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Category},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Category},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Category},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Category},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Category},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Category},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Category_spec = {
  "setools.policyrep.Category",
  sizeof(struct __pyx_obj_7setools_9policyrep_Category),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Category_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Category = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Category", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Category), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Category, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_8Category_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("An MLS category."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Category, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Category, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Category, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Category, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Category, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Category, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Boolean __pyx_vtable_7setools_9policyrep_Boolean;

static PyObject *__pyx_tp_new_7setools_9policyrep_Boolean(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Boolean *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Boolean *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Boolean;
  return o;
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Boolean_state(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Boolean_5state_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Boolean[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Boolean_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_7Boolean_statement},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Boolean_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Boolean_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Boolean[] = {
  {"state", __pyx_getprop_7setools_9policyrep_7Boolean_state, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Boolean_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicySymbol},
  {Py_tp_doc, (void *)PyDoc_STR("A Boolean.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyObject},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyObject},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Boolean},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Boolean},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Boolean},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Boolean_spec = {
  "setools.policyrep.Boolean",
  sizeof(struct __pyx_obj_7setools_9policyrep_Boolean),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Boolean_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Boolean = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Boolean", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Boolean), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A Boolean."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyObject, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyObject, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Boolean, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Boolean, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Boolean, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_vtable_7setools_9policyrep_Ocontext;

static PyObject *__pyx_tp_new_7setools_9policyrep_Ocontext(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Ocontext *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Ocontext *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Ocontext;
  p->context = ((struct __pyx_obj_7setools_9policyrep_Context *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Ocontext(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Ocontext *p = (struct __pyx_obj_7setools_9policyrep_Ocontext *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Ocontext) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->context);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Ocontext(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Ocontext *p = (struct __pyx_obj_7setools_9policyrep_Ocontext *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->context) {
    e = (*v)(((PyObject *)p->context), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Ocontext(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Ocontext *p = (struct __pyx_obj_7setools_9policyrep_Ocontext *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->context);
  p->context = ((struct __pyx_obj_7setools_9policyrep_Context *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Ocontext_context(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Ocontext_7context_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Ocontext[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Ocontext_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Ocontext_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Ocontext[] = {
  {"context", __pyx_getprop_7setools_9policyrep_8Ocontext_context, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Ocontext_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Ocontext},
  {Py_tp_doc, (void *)PyDoc_STR("Base class for most in-policy labeling statements, (portcon, nodecon, etc.)")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Ocontext},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Ocontext},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Ocontext},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Ocontext},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Ocontext},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Ocontext_spec = {
  "setools.policyrep.Ocontext",
  sizeof(struct __pyx_obj_7setools_9policyrep_Ocontext),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Ocontext_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Ocontext = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Ocontext", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Ocontext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Base class for most in-policy labeling statements, (portcon, nodecon, etc.)"), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ocontext, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ocontext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Ocontext, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Ocontext, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Ocontext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Portcon __pyx_vtable_7setools_9policyrep_Portcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Portcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Portcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Portcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Portcon;
  p->ports = Py_None; Py_INCREF(Py_None);
  p->protocol = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Portcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Portcon *p = (struct __pyx_obj_7setools_9policyrep_Portcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Portcon) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ports);
  Py_CLEAR(p->protocol);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Portcon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Portcon *p = (struct __pyx_obj_7setools_9policyrep_Portcon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->ports) {
    e = (*v)(p->ports, a); if (e) return e;
  }
  if (p->protocol) {
    e = (*v)(p->protocol, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Portcon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Portcon *p = (struct __pyx_obj_7setools_9policyrep_Portcon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->ports);
  p->ports = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->protocol);
  p->protocol = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Portcon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_7Portcon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Portcon_ports(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Portcon_5ports_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Portcon_protocol(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Portcon_8protocol_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Portcon[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Portcon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Portcon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Portcon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Portcon[] = {
  {"ports", __pyx_getprop_7setools_9policyrep_7Portcon_ports, 0, 0, 0},
  {"protocol", __pyx_getprop_7setools_9policyrep_7Portcon_protocol, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Portcon_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Portcon},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_7Portcon_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("A portcon statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Portcon},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Portcon},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Portcon},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Portcon},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Portcon},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Portcon},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Portcon_spec = {
  "setools.policyrep.Portcon",
  sizeof(struct __pyx_obj_7setools_9policyrep_Portcon),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Portcon_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Portcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Portcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Portcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Portcon, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_7Portcon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A portcon statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Portcon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Portcon, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Portcon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Portcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Portcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Portcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Nodecon __pyx_vtable_7setools_9policyrep_Nodecon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Nodecon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Nodecon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Nodecon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Nodecon;
  p->ip_version = Py_None; Py_INCREF(Py_None);
  p->network = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Nodecon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Nodecon *p = (struct __pyx_obj_7setools_9policyrep_Nodecon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Nodecon) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ip_version);
  Py_CLEAR(p->network);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Nodecon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Nodecon *p = (struct __pyx_obj_7setools_9policyrep_Nodecon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->ip_version) {
    e = (*v)(p->ip_version, a); if (e) return e;
  }
  if (p->network) {
    e = (*v)(p->network, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Nodecon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Nodecon *p = (struct __pyx_obj_7setools_9policyrep_Nodecon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->ip_version);
  p->ip_version = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->network);
  p->network = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Nodecon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_7Nodecon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Nodecon_ip_version(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Nodecon_10ip_version_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Nodecon_network(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Nodecon_7network_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Nodecon[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Nodecon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Nodecon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Nodecon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Nodecon[] = {
  {"ip_version", __pyx_getprop_7setools_9policyrep_7Nodecon_ip_version, 0, 0, 0},
  {"network", __pyx_getprop_7setools_9policyrep_7Nodecon_network, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Nodecon_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Nodecon},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_7Nodecon_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("A nodecon statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Nodecon},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Nodecon},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Nodecon},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Nodecon},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Nodecon},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Nodecon},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Nodecon_spec = {
  "setools.policyrep.Nodecon",
  sizeof(struct __pyx_obj_7setools_9policyrep_Nodecon),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Nodecon_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Nodecon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Nodecon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Nodecon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Nodecon, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_7Nodecon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A nodecon statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Nodecon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Nodecon, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Nodecon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Nodecon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Nodecon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Nodecon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Netifcon __pyx_vtable_7setools_9policyrep_Netifcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Netifcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Netifcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Netifcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Netifcon;
  p->netif = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->packet = ((struct __pyx_obj_7setools_9policyrep_Context *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Netifcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Netifcon *p = (struct __pyx_obj_7setools_9policyrep_Netifcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Netifcon) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->netif);
  Py_CLEAR(p->packet);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Netifcon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Netifcon *p = (struct __pyx_obj_7setools_9policyrep_Netifcon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->packet) {
    e = (*v)(((PyObject *)p->packet), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Netifcon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Netifcon *p = (struct __pyx_obj_7setools_9policyrep_Netifcon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->packet);
  p->packet = ((struct __pyx_obj_7setools_9policyrep_Context *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Netifcon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_8Netifcon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Netifcon_netif(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Netifcon_5netif_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Netifcon_packet(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Netifcon_6packet_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Netifcon[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Netifcon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Netifcon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Netifcon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Netifcon[] = {
  {"netif", __pyx_getprop_7setools_9policyrep_8Netifcon_netif, 0, 0, 0},
  {"packet", __pyx_getprop_7setools_9policyrep_8Netifcon_packet, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Netifcon_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Netifcon},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_8Netifcon_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("A netifcon statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Netifcon},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Netifcon},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Netifcon},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Netifcon},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Netifcon},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Netifcon},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Netifcon_spec = {
  "setools.policyrep.Netifcon",
  sizeof(struct __pyx_obj_7setools_9policyrep_Netifcon),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Netifcon_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Netifcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Netifcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Netifcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Netifcon, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_8Netifcon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A netifcon statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Netifcon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Netifcon, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Netifcon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Netifcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Netifcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Netifcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Ibpkeycon __pyx_vtable_7setools_9policyrep_Ibpkeycon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Ibpkeycon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Ibpkeycon;
  p->subnet_prefix = Py_None; Py_INCREF(Py_None);
  p->pkeys = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Ibpkeycon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *p = (struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Ibpkeycon) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->subnet_prefix);
  Py_CLEAR(p->pkeys);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Ibpkeycon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *p = (struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->subnet_prefix) {
    e = (*v)(p->subnet_prefix, a); if (e) return e;
  }
  if (p->pkeys) {
    e = (*v)(p->pkeys, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Ibpkeycon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *p = (struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->subnet_prefix);
  p->subnet_prefix = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->pkeys);
  p->pkeys = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Ibpkeycon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_9Ibpkeycon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_9Ibpkeycon_subnet_prefix(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_9Ibpkeycon_13subnet_prefix_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_9Ibpkeycon_pkeys(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_9Ibpkeycon_5pkeys_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Ibpkeycon[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ibpkeycon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ibpkeycon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ibpkeycon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Ibpkeycon[] = {
  {"subnet_prefix", __pyx_getprop_7setools_9policyrep_9Ibpkeycon_subnet_prefix, 0, 0, 0},
  {"pkeys", __pyx_getprop_7setools_9policyrep_9Ibpkeycon_pkeys, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Ibpkeycon_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Ibpkeycon},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_9Ibpkeycon_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("An ibpkeycon statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Ibpkeycon},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Ibpkeycon},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Ibpkeycon},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Ibpkeycon},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Ibpkeycon},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Ibpkeycon},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Ibpkeycon_spec = {
  "setools.policyrep.Ibpkeycon",
  sizeof(struct __pyx_obj_7setools_9policyrep_Ibpkeycon),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Ibpkeycon_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Ibpkeycon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Ibpkeycon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Ibpkeycon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Ibpkeycon, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_9Ibpkeycon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("An ibpkeycon statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ibpkeycon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ibpkeycon, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Ibpkeycon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Ibpkeycon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Ibpkeycon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Ibpkeycon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Ibendportcon __pyx_vtable_7setools_9policyrep_Ibendportcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Ibendportcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Ibendportcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Ibendportcon;
  p->name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Ibendportcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Ibendportcon *p = (struct __pyx_obj_7setools_9policyrep_Ibendportcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Ibendportcon) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->name);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Ibendportcon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12Ibendportcon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_12Ibendportcon_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12Ibendportcon_4name_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_12Ibendportcon_port(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12Ibendportcon_4port_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Ibendportcon[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Ibendportcon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Ibendportcon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Ibendportcon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Ibendportcon[] = {
  {"name", __pyx_getprop_7setools_9policyrep_12Ibendportcon_name, 0, 0, 0},
  {"port", __pyx_getprop_7setools_9policyrep_12Ibendportcon_port, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Ibendportcon_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Ibendportcon},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_12Ibendportcon_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("An ibendportcon statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Ocontext},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Ocontext},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Ibendportcon},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Ibendportcon},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Ibendportcon},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Ibendportcon},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Ibendportcon_spec = {
  "setools.policyrep.Ibendportcon",
  sizeof(struct __pyx_obj_7setools_9policyrep_Ibendportcon),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Ibendportcon_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Ibendportcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Ibendportcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Ibendportcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Ibendportcon, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_12Ibendportcon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("An ibendportcon statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ocontext, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ocontext, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Ibendportcon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Ibendportcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Ibendportcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Ibendportcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_InitialSID __pyx_vtable_7setools_9policyrep_InitialSID;

static PyObject *__pyx_tp_new_7setools_9policyrep_InitialSID(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_InitialSID *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_InitialSID *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_InitialSID;
  p->name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_InitialSID(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_InitialSID *p = (struct __pyx_obj_7setools_9policyrep_InitialSID *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_InitialSID) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->name);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10InitialSID_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10InitialSID_4name_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_InitialSID[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10InitialSID_3statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10InitialSID_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10InitialSID_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_InitialSID[] = {
  {"name", __pyx_getprop_7setools_9policyrep_10InitialSID_name, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_InitialSID_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_InitialSID},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_10InitialSID_1__str__},
  {Py_tp_doc, (void *)PyDoc_STR("An initial SID statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Ocontext},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Ocontext},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_InitialSID},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_InitialSID},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_InitialSID},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_InitialSID_spec = {
  "setools.policyrep.InitialSID",
  sizeof(struct __pyx_obj_7setools_9policyrep_InitialSID),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_InitialSID_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_InitialSID = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""InitialSID", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_InitialSID), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_InitialSID, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_10InitialSID_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("An initial SID statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ocontext, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ocontext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_InitialSID, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_InitialSID, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_InitialSID, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Genfscon __pyx_vtable_7setools_9policyrep_Genfscon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Genfscon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Genfscon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Genfscon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Genfscon;
  p->fs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->filetype = Py_None; Py_INCREF(Py_None);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  p->path = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Genfscon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Genfscon *p = (struct __pyx_obj_7setools_9policyrep_Genfscon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Genfscon) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->fs);
  Py_CLEAR(p->filetype);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->path);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Genfscon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Genfscon *p = (struct __pyx_obj_7setools_9policyrep_Genfscon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->filetype) {
    e = (*v)(p->filetype, a); if (e) return e;
  }
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Genfscon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Genfscon *p = (struct __pyx_obj_7setools_9policyrep_Genfscon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->filetype);
  p->filetype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Genfscon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_8Genfscon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Genfscon_fs(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Genfscon_2fs_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Genfscon_filetype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Genfscon_8filetype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Genfscon_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Genfscon_6tclass_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Genfscon_path(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Genfscon_4path_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Genfscon[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Genfscon_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Genfscon_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Genfscon_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Genfscon[] = {
  {"fs", __pyx_getprop_7setools_9policyrep_8Genfscon_fs, 0, 0, 0},
  {"filetype", __pyx_getprop_7setools_9policyrep_8Genfscon_filetype, 0, 0, 0},
  {"tclass", __pyx_getprop_7setools_9policyrep_8Genfscon_tclass, 0, 0, 0},
  {"path", __pyx_getprop_7setools_9policyrep_8Genfscon_path, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Genfscon_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Genfscon},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_8Genfscon_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("A genfscon statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Genfscon},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Genfscon},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_Genfscon},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Genfscon},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Genfscon},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Genfscon},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Genfscon_spec = {
  "setools.policyrep.Genfscon",
  sizeof(struct __pyx_obj_7setools_9policyrep_Genfscon),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Genfscon_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Genfscon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Genfscon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Genfscon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Genfscon, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_8Genfscon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A genfscon statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Genfscon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Genfscon, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Genfscon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Genfscon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Genfscon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Genfscon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_FSUse __pyx_vtable_7setools_9policyrep_FSUse;

static PyObject *__pyx_tp_new_7setools_9policyrep_FSUse(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_FSUse *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_FSUse *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_FSUse;
  p->ruletype = Py_None; Py_INCREF(Py_None);
  p->fs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_FSUse(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_FSUse *p = (struct __pyx_obj_7setools_9policyrep_FSUse *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_FSUse) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ruletype);
  Py_CLEAR(p->fs);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_FSUse(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_FSUse *p = (struct __pyx_obj_7setools_9policyrep_FSUse *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->ruletype) {
    e = (*v)(p->ruletype, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_FSUse(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_FSUse *p = (struct __pyx_obj_7setools_9policyrep_FSUse *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->ruletype);
  p->ruletype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_FSUse(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_5FSUse_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_5FSUse_ruletype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_5FSUse_8ruletype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_5FSUse_fs(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_5FSUse_2fs_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_FSUse[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5FSUse_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5FSUse_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_5FSUse_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_FSUse[] = {
  {"ruletype", __pyx_getprop_7setools_9policyrep_5FSUse_ruletype, 0, 0, 0},
  {"fs", __pyx_getprop_7setools_9policyrep_5FSUse_fs, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_FSUse_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_FSUse},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_5FSUse_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("An fs_use_* statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_FSUse},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_FSUse},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_FSUse},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_FSUse},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_FSUse},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_FSUse},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_FSUse_spec = {
  "setools.policyrep.FSUse",
  sizeof(struct __pyx_obj_7setools_9policyrep_FSUse),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_FSUse_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_FSUse = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""FSUse", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_FSUse), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_FSUse, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_5FSUse_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("An fs_use_* statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_FSUse, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_FSUse, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_FSUse, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_FSUse, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_FSUse, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_FSUse, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyIterator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)o);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator *p = (struct __pyx_obj_7setools_9policyrep_PolicyIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->policy);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_PolicyIterator *p = (struct __pyx_obj_7setools_9policyrep_PolicyIterator *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->policy) {
    e = (*v)(((PyObject *)p->policy), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_PolicyIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_PolicyIterator *p = (struct __pyx_obj_7setools_9policyrep_PolicyIterator *)o;
  tmp = ((PyObject*)p->policy);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicyIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14PolicyIterator_7reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_14PolicyIterator_6reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14PolicyIterator_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14PolicyIterator_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_PolicyIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_14PolicyIterator_5__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_14PolicyIterator_5__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Base class for all policy object iterators.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iter, (void *)__pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_PolicyIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PolicyIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_PolicyIterator_spec = {
  "setools.policyrep.PolicyIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_PolicyIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_PolicyIterator = {
  __pyx_pw_7setools_9policyrep_14PolicyIterator_5__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_PolicyIterator = {
  __pyx_pw_7setools_9policyrep_14PolicyIterator_5__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_PolicyIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""PolicyIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_PolicyIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_PolicyIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Base class for all policy object iterators."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  __pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicyIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_PermissionVectorIterator __pyx_vtable_7setools_9policyrep_PermissionVectorIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_PermissionVectorIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PermissionVectorIterator;
  p->perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_PermissionVectorIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *p = (struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_PermissionVectorIterator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->perm_table);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_PermissionVectorIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *p = (struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->perm_table) {
    e = (*v)(p->perm_table, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_PermissionVectorIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *p = (struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->perm_table);
  p->perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PermissionVectorIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_24PermissionVectorIterator_4reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_PermissionVectorIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PermissionVectorIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over an access (permission) vector")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PermissionVectorIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PermissionVectorIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_PermissionVectorIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PermissionVectorIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_PermissionVectorIterator_spec = {
  "setools.policyrep.PermissionVectorIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_PermissionVectorIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_PermissionVectorIterator = {
  __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_PermissionVectorIterator = {
  __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_PermissionVectorIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""PermissionVectorIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PermissionVectorIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_PermissionVectorIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_PermissionVectorIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over an access (permission) vector"), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PermissionVectorIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PermissionVectorIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PermissionVectorIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PermissionVectorIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprIterator __pyx_vtable_7setools_9policyrep_ConstraintExprIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExprIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_ConstraintExprIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConstraintExprIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_22ConstraintExprIterator_4reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_ConstraintExprIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    Constraint low-level expression iterator.\n\n    This is only used for initializing a ConstraintExpression\n    object.\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_ConstraintExprIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_ConstraintExprIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_ConstraintExprIterator_spec = {
  "setools.policyrep.ConstraintExprIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_ConstraintExprIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_ConstraintExprIterator = {
  __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConstraintExprIterator = {
  __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConstraintExprIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""ConstraintExprIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConstraintExprIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConstraintExprIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    Constraint low-level expression iterator.\n\n    This is only used for initializing a ConstraintExpression\n    object.\n    "), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConstraintExprIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConstraintExprIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator __pyx_vtable_7setools_9policyrep_ConstraintIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_ConstraintIterator;
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ConstraintIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator *p = (struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_ConstraintIterator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tclass);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ConstraintIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator *p = (struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ConstraintIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator *p = (struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConstraintIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_18ConstraintIterator_4reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18ConstraintIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_ConstraintIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_ConstraintIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_18ConstraintIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_18ConstraintIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Constraint iterator.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_ConstraintIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_ConstraintIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_ConstraintIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_ConstraintIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_ConstraintIterator_spec = {
  "setools.policyrep.ConstraintIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_ConstraintIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_ConstraintIterator = {
  __pyx_pw_7setools_9policyrep_18ConstraintIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConstraintIterator = {
  __pyx_pw_7setools_9policyrep_18ConstraintIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConstraintIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""ConstraintIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConstraintIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConstraintIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConstraintIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Constraint iterator."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConstraintIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConstraintIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConstraintIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConstraintIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_ValidatetransIterator __pyx_vtable_7setools_9policyrep_ValidatetransIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ValidatetransIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_ConstraintIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator*)__pyx_vtabptr_7setools_9policyrep_ValidatetransIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ValidatetransIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21ValidatetransIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21ValidatetransIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_ValidatetransIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_ConstraintIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Validatetrans iterator.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_ConstraintIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_ConstraintIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_ValidatetransIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_ValidatetransIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_ValidatetransIterator_spec = {
  "setools.policyrep.ValidatetransIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_ValidatetransIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_ValidatetransIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_ValidatetransIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""ValidatetransIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ValidatetransIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConstraintIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Validatetrans iterator."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConstraintIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConstraintIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ValidatetransIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ValidatetransIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalExprIterator __pyx_vtable_7setools_9policyrep_ConditionalExprIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalExprIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_ConditionalExprIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConditionalExprIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_23ConditionalExprIterator_4reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_ConditionalExprIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Conditional expression iterator.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_ConditionalExprIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_ConditionalExprIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_ConditionalExprIterator_spec = {
  "setools.policyrep.ConditionalExprIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_ConditionalExprIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_ConditionalExprIterator = {
  __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConditionalExprIterator = {
  __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConditionalExprIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""ConditionalExprIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConditionalExprIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConditionalExprIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Conditional expression iterator."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConditionalExprIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConditionalExprIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalIterator __pyx_vtable_7setools_9policyrep_ConditionalIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConditionalIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_ConditionalIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConditionalIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_19ConditionalIterator_4reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_ConditionalIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_19ConditionalIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_19ConditionalIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Conditionals iterator.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_ConditionalIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_ConditionalIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_ConditionalIterator_spec = {
  "setools.policyrep.ConditionalIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_ConditionalIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_ConditionalIterator = {
  __pyx_pw_7setools_9policyrep_19ConditionalIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConditionalIterator = {
  __pyx_pw_7setools_9policyrep_19ConditionalIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConditionalIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""ConditionalIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConditionalIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConditionalIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Conditionals iterator."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConditionalIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConditionalIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_EbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15EbitmapIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_15EbitmapIterator_4reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15EbitmapIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15EbitmapIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_EbitmapIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_15EbitmapIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_15EbitmapIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    Base class for iterators over hash tables.\n\n    Subclasses must provide their own __next__, which calls this class's __next__\n    and then uses a factory function to build and return an object from self.curr.\n\n    For example:\n\n    def __next__(self):\n        super().__next__()\n        return iomemcon_factory(self.policy, self.curr)\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_EbitmapIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PolicyIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_EbitmapIterator_spec = {
  "setools.policyrep.EbitmapIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_EbitmapIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_EbitmapIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_EbitmapIterator = {
  __pyx_pw_7setools_9policyrep_15EbitmapIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_EbitmapIterator = {
  __pyx_pw_7setools_9policyrep_15EbitmapIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_EbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""EbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_EbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_EbitmapIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_EbitmapIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    Base class for iterators over hash tables.\n\n    Subclasses must provide their own __next__, which calls this class's __next__\n    and then uses a factory function to build and return an object from self.curr.\n\n    For example:\n\n    def __next__(self):\n        super().__next__()\n        return iomemcon_factory(self.policy, self.curr)\n    "), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_EbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_CategoryEbitmapIterator __pyx_vtable_7setools_9policyrep_CategoryEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_CategoryEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_CategoryEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_CategoryEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_CategoryEbitmapIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over a category ebitmap.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_CategoryEbitmapIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_CategoryEbitmapIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_CategoryEbitmapIterator_spec = {
  "setools.policyrep.CategoryEbitmapIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_CategoryEbitmapIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_CategoryEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""CategoryEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over a category ebitmap."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_CategoryEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_CategoryEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_vtable_7setools_9policyrep_HashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_HashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_HashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15HashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_15HashtabIterator_4reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15HashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15HashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_HashtabIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_15HashtabIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_15HashtabIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    Base class for iterators over hash tables.\n\n    Subclasses must provide their own __next__, which calls this class's __next__\n    and then uses a factory function to build and return an object from self.curr.\n\n    For example:\n\n    def __next__(self):\n        super().__next__()\n        return iomemcon_factory(self.policy, self.curr)\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_HashtabIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_HashtabIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_HashtabIterator_spec = {
  "setools.policyrep.HashtabIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_HashtabIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_HashtabIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_HashtabIterator = {
  __pyx_pw_7setools_9policyrep_15HashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_HashtabIterator = {
  __pyx_pw_7setools_9policyrep_15HashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_HashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""HashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_HashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_HashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_HashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    Base class for iterators over hash tables.\n\n    Subclasses must provide their own __next__, which calls this class's __next__\n    and then uses a factory function to build and return an object from self.curr.\n\n    For example:\n\n    def __next__(self):\n        super().__next__()\n        return iomemcon_factory(self.policy, self.curr)\n    "), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_HashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_HashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_ObjClassHashtabIterator __pyx_vtable_7setools_9policyrep_ObjClassHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ObjClassHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_ObjClassHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ObjClassHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_ObjClassHashtabIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over roles in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_ObjClassHashtabIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_ObjClassHashtabIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_ObjClassHashtabIterator_spec = {
  "setools.policyrep.ObjClassHashtabIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_ObjClassHashtabIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_ObjClassHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""ObjClassHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over roles in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ObjClassHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ObjClassHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_CommonHashtabIterator __pyx_vtable_7setools_9policyrep_CommonHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_CommonHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_CommonHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_CommonHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_CommonHashtabIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over commons in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_CommonHashtabIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_CommonHashtabIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_CommonHashtabIterator_spec = {
  "setools.policyrep.CommonHashtabIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_CommonHashtabIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_CommonHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""CommonHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over commons in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_CommonHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_CommonHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_MLSRuleIterator __pyx_vtable_7setools_9policyrep_MLSRuleIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_MLSRuleIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_MLSRuleIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_MLSRuleIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15MLSRuleIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15MLSRuleIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_MLSRuleIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over MLS rules in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_MLSRuleIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_MLSRuleIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_MLSRuleIterator_spec = {
  "setools.policyrep.MLSRuleIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_MLSRuleIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_MLSRuleIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_MLSRuleIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""MLSRuleIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_MLSRuleIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over MLS rules in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_MLSRuleIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_MLSRuleIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_LevelDeclHashtabIterator __pyx_vtable_7setools_9policyrep_LevelDeclHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_LevelDeclHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_LevelDeclHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_LevelDeclHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_LevelDeclHashtabIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over level declarations in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_LevelDeclHashtabIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_LevelDeclHashtabIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_LevelDeclHashtabIterator_spec = {
  "setools.policyrep.LevelDeclHashtabIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_LevelDeclHashtabIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_LevelDeclHashtabIterator = {
  __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_LevelDeclHashtabIterator = {
  __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_LevelDeclHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""LevelDeclHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_LevelDeclHashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_LevelDeclHashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over level declarations in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_LevelDeclHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_LevelDeclHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_SensitivityHashtabIterator __pyx_vtable_7setools_9policyrep_SensitivityHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_SensitivityHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_SensitivityHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_SensitivityHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_SensitivityHashtabIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over sensitivity in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_SensitivityHashtabIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_SensitivityHashtabIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_SensitivityHashtabIterator_spec = {
  "setools.policyrep.SensitivityHashtabIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_SensitivityHashtabIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_SensitivityHashtabIterator = {
  __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_SensitivityHashtabIterator = {
  __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_SensitivityHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""SensitivityHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_SensitivityHashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_SensitivityHashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over sensitivity in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_SensitivityHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_SensitivityHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_CategoryHashtabIterator __pyx_vtable_7setools_9policyrep_CategoryHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_CategoryHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_CategoryHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_CategoryHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_CategoryHashtabIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over categories in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_CategoryHashtabIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_CategoryHashtabIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_CategoryHashtabIterator_spec = {
  "setools.policyrep.CategoryHashtabIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_CategoryHashtabIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_CategoryHashtabIterator = {
  __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_CategoryHashtabIterator = {
  __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_CategoryHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""CategoryHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_CategoryHashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_CategoryHashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over categories in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_CategoryHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_CategoryHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_TypeboundsIterator __pyx_vtable_7setools_9policyrep_TypeboundsIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeboundsIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_TypeboundsIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeboundsIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_TypeboundsIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over typebounds rules in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_TypeboundsIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_TypeboundsIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_TypeboundsIterator_spec = {
  "setools.policyrep.TypeboundsIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_TypeboundsIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_TypeboundsIterator = {
  __pyx_pw_7setools_9policyrep_18TypeboundsIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_TypeboundsIterator = {
  __pyx_pw_7setools_9policyrep_18TypeboundsIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_TypeboundsIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""TypeboundsIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_TypeboundsIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_TypeboundsIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over typebounds rules in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeboundsIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeboundsIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_BooleanHashtabIterator __pyx_vtable_7setools_9policyrep_BooleanHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_BooleanHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_BooleanHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_BooleanHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_BooleanHashtabIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over Booleans in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_BooleanHashtabIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_BooleanHashtabIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_BooleanHashtabIterator_spec = {
  "setools.policyrep.BooleanHashtabIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_BooleanHashtabIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_BooleanHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""BooleanHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over Booleans in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_BooleanHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_BooleanHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_OcontextIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16OcontextIterator_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16OcontextIterator_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_OcontextIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_16OcontextIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_16OcontextIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    Base class for iterators for most in-policy labeling statements, (portcon, nodecon, etc.)\n\n    Subclasses must provide their own __next__, which calls this class's __next__\n    and then uses a factory function to build and return an object from self.ocon.\n\n    For example:\n\n    def __next__(self):\n        super().__next__()\n        return iomemcon_factory(self.policy, self.ocon)\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_OcontextIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PolicyIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_OcontextIterator_spec = {
  "setools.policyrep.OcontextIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_OcontextIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_OcontextIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_OcontextIterator = {
  __pyx_pw_7setools_9policyrep_16OcontextIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_OcontextIterator = {
  __pyx_pw_7setools_9policyrep_16OcontextIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_OcontextIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""OcontextIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_OcontextIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_OcontextIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_OcontextIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    Base class for iterators for most in-policy labeling statements, (portcon, nodecon, etc.)\n\n    Subclasses must provide their own __next__, which calls this class's __next__\n    and then uses a factory function to build and return an object from self.ocon.\n\n    For example:\n\n    def __next__(self):\n        super().__next__()\n        return iomemcon_factory(self.policy, self.ocon)\n    "), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_OcontextIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_PortconIterator __pyx_vtable_7setools_9policyrep_PortconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_PortconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PortconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PortconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PortconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15PortconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_15PortconIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PortconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15PortconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15PortconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15PortconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_PortconIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for portcon statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_15PortconIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_PortconIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PortconIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_PortconIterator_spec = {
  "setools.policyrep.PortconIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_PortconIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_PortconIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_PortconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""PortconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PortconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for portcon statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15PortconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PortconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PortconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_NodeconIterator __pyx_vtable_7setools_9policyrep_NodeconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_NodeconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_NodeconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_NodeconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_NodeconIterator;
  p->ip_version = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_NodeconIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_NodeconIterator *p = (struct __pyx_obj_7setools_9policyrep_NodeconIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_NodeconIterator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ip_version);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_NodeconIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_NodeconIterator *p = (struct __pyx_obj_7setools_9policyrep_NodeconIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->ip_version) {
    e = (*v)(p->ip_version, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_NodeconIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_NodeconIterator *p = (struct __pyx_obj_7setools_9policyrep_NodeconIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->ip_version);
  p->ip_version = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_NodeconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15NodeconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15NodeconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_NodeconIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_NodeconIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for nodecon statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_NodeconIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_NodeconIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_NodeconIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_NodeconIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_NodeconIterator_spec = {
  "setools.policyrep.NodeconIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_NodeconIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_NodeconIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_NodeconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""NodeconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_NodeconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_NodeconIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for nodecon statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_NodeconIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_NodeconIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_NodeconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_NodeconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_NetifconIterator __pyx_vtable_7setools_9policyrep_NetifconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_NetifconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_NetifconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_NetifconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_NetifconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_NetifconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16NetifconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16NetifconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_NetifconIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for netifcon statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_NetifconIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_NetifconIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_NetifconIterator_spec = {
  "setools.policyrep.NetifconIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_NetifconIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_NetifconIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_NetifconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""NetifconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_NetifconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for netifcon statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_NetifconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_NetifconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_IbpkeyconIterator __pyx_vtable_7setools_9policyrep_IbpkeyconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_IbpkeyconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_IbpkeyconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_IbpkeyconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_IbpkeyconIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for ibpkeycon statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_IbpkeyconIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_IbpkeyconIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_IbpkeyconIterator_spec = {
  "setools.policyrep.IbpkeyconIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_IbpkeyconIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_IbpkeyconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""IbpkeyconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for ibpkeycon statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_IbpkeyconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_IbpkeyconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_IbendportconIterator __pyx_vtable_7setools_9policyrep_IbendportconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_IbendportconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_IbendportconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_IbendportconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_IbendportconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_IbendportconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20IbendportconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20IbendportconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_IbendportconIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for ibendportcon statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_IbendportconIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_IbendportconIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_IbendportconIterator_spec = {
  "setools.policyrep.IbendportconIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_IbendportconIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_IbendportconIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_IbendportconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""IbendportconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_IbendportconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for ibendportcon statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_IbendportconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_IbendportconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_InitialSIDIterator __pyx_vtable_7setools_9policyrep_InitialSIDIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_InitialSIDIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_InitialSIDIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_InitialSIDIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18InitialSIDIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_18InitialSIDIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_InitialSIDIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for initial SID statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_InitialSIDIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_InitialSIDIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_InitialSIDIterator_spec = {
  "setools.policyrep.InitialSIDIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_InitialSIDIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_InitialSIDIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_InitialSIDIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""InitialSIDIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_InitialSIDIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for initial SID statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_InitialSIDIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_InitialSIDIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_GenfsconOcontextIterator __pyx_vtable_7setools_9policyrep_GenfsconOcontextIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsconOcontextIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_GenfsconOcontextIterator;
  p->fs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_GenfsconOcontextIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *p = (struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_GenfsconOcontextIterator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->fs);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_GenfsconOcontextIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_GenfsconOcontextIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_GenfsconOcontextIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Sub-iterator for genfscon statements.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_GenfsconOcontextIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_GenfsconOcontextIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_GenfsconOcontextIterator_spec = {
  "setools.policyrep.GenfsconOcontextIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_GenfsconOcontextIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_GenfsconOcontextIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""GenfsconOcontextIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_GenfsconOcontextIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Sub-iterator for genfscon statements."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_GenfsconOcontextIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_GenfsconOcontextIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_FSUseIterator __pyx_vtable_7setools_9policyrep_FSUseIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_FSUseIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_FSUseIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_FSUseIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_FSUseIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_FSUseIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13FSUseIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13FSUseIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_FSUseIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for fs_use_* statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_FSUseIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_FSUseIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_FSUseIterator_spec = {
  "setools.policyrep.FSUseIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_FSUseIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_FSUseIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_FSUseIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""FSUseIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_FSUseIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for fs_use_* statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_FSUseIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_FSUseIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapability __pyx_vtable_7setools_9policyrep_PolicyCapability;

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyCapability(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicyCapability *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_PolicyCapability;
  return o;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_PolicyCapability(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_16PolicyCapability_1__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicyCapability[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16PolicyCapability_5statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16PolicyCapability_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16PolicyCapability_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_PolicyCapability_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicySymbol},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_16PolicyCapability_3__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("A policy capability.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyObject},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyObject},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_PolicyCapability},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_PolicyCapability},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PolicyCapability},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_PolicyCapability_spec = {
  "setools.policyrep.PolicyCapability",
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyCapability),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_PolicyCapability_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_PolicyCapability = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""PolicyCapability", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyCapability), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_16PolicyCapability_3__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A policy capability."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyObject, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyObject, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_PolicyCapability, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicyCapability, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyCapability, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapabilityIterator __pyx_vtable_7setools_9policyrep_PolicyCapabilityIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyCapabilityIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PolicyCapabilityIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicyCapabilityIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_PolicyCapabilityIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for policy capability statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_PolicyCapabilityIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PolicyCapabilityIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_PolicyCapabilityIterator_spec = {
  "setools.policyrep.PolicyCapabilityIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_PolicyCapabilityIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_PolicyCapabilityIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""PolicyCapabilityIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for policy capability statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicyCapabilityIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyCapabilityIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_RoleAllowIterator __pyx_vtable_7setools_9policyrep_RoleAllowIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleAllowIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_RoleAllowIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleAllowIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_17RoleAllowIterator_4reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_RoleAllowIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Role allow rule iterator.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_RoleAllowIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_RoleAllowIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_RoleAllowIterator_spec = {
  "setools.policyrep.RoleAllowIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_RoleAllowIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_RoleAllowIterator = {
  __pyx_pw_7setools_9policyrep_17RoleAllowIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_RoleAllowIterator = {
  __pyx_pw_7setools_9policyrep_17RoleAllowIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_RoleAllowIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""RoleAllowIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_RoleAllowIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_RoleAllowIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Role allow rule iterator."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleAllowIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleAllowIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_RoleTransitionIterator __pyx_vtable_7setools_9policyrep_RoleTransitionIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleTransitionIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_RoleTransitionIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleTransitionIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_22RoleTransitionIterator_4reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_RoleTransitionIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Role transition rule iterator.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_RoleTransitionIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_RoleTransitionIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_RoleTransitionIterator_spec = {
  "setools.policyrep.RoleTransitionIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_RoleTransitionIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_RoleTransitionIterator = {
  __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_RoleTransitionIterator = {
  __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_RoleTransitionIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""RoleTransitionIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_RoleTransitionIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_RoleTransitionIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Role transition rule iterator."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleTransitionIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleTransitionIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Role __pyx_vtable_7setools_9policyrep_Role;

static PyObject *__pyx_tp_new_7setools_9policyrep_Role(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Role *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Role *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Role;
  p->_types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Role(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Role *p = (struct __pyx_obj_7setools_9policyrep_Role *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Role) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_types);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Role(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Role *p = (struct __pyx_obj_7setools_9policyrep_Role *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_types) {
    e = (*v)(p->_types, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Role(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Role *p = (struct __pyx_obj_7setools_9policyrep_Role *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_types);
  p->_types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_4Role_dominated_roles(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_4Role_15dominated_roles_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Role[] = {
  {"types", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Role_1types, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_4Role_types},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Role_3statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Role_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Role_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Role[] = {
  {"dominated_roles", __pyx_getprop_7setools_9policyrep_4Role_dominated_roles, 0, PyDoc_STR("The roles that this role dominates."), 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Role_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Role},
  {Py_tp_doc, (void *)PyDoc_STR("A role.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Role},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Role},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Role},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Role},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Role},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Role_spec = {
  "setools.policyrep.Role",
  sizeof(struct __pyx_obj_7setools_9policyrep_Role),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Role_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Role = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Role", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Role), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Role, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A role."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Role, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Role, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Role, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Role, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Role, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_RoleHashtabIterator __pyx_vtable_7setools_9policyrep_RoleHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_RoleHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_RoleHashtabIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over roles in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_RoleHashtabIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_RoleHashtabIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_RoleHashtabIterator_spec = {
  "setools.policyrep.RoleHashtabIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_RoleHashtabIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_RoleHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""RoleHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over roles in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_RoleEbitmapIterator __pyx_vtable_7setools_9policyrep_RoleEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_RoleEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_RoleEbitmapIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over a role ebitmap.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_RoleEbitmapIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_RoleEbitmapIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_RoleEbitmapIterator_spec = {
  "setools.policyrep.RoleEbitmapIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_RoleEbitmapIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_RoleEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""RoleEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over a role ebitmap."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule __pyx_vtable_7setools_9policyrep_PolicyRule;

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyRule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicyRule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicyRule *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_PolicyRule;
  p->ruletype = Py_None; Py_INCREF(Py_None);
  p->source = Py_None; Py_INCREF(Py_None);
  p->target = Py_None; Py_INCREF(Py_None);
  p->origin = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_PolicyRule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_PolicyRule *p = (struct __pyx_obj_7setools_9policyrep_PolicyRule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_PolicyRule) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ruletype);
  Py_CLEAR(p->source);
  Py_CLEAR(p->target);
  Py_CLEAR(p->origin);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_PolicyRule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_PolicyRule *p = (struct __pyx_obj_7setools_9policyrep_PolicyRule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->ruletype) {
    e = (*v)(p->ruletype, a); if (e) return e;
  }
  if (p->source) {
    e = (*v)(p->source, a); if (e) return e;
  }
  if (p->target) {
    e = (*v)(p->target, a); if (e) return e;
  }
  if (p->origin) {
    e = (*v)(p->origin, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_PolicyRule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_PolicyRule *p = (struct __pyx_obj_7setools_9policyrep_PolicyRule *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->ruletype);
  p->ruletype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->source);
  p->source = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->target);
  p->target = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->origin);
  p->origin = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_conditional(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_11conditional_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_conditional_block(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_17conditional_block_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_filename(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_8filename_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_5perms_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_6tclass_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_xperm_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_10xperm_type_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_ruletype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_8ruletype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_source(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_6source_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_target(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_6target_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_origin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_6origin_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_extended(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_8extended_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicyRule[] = {
  {"enabled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyRule_1enabled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_10PolicyRule_enabled},
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyRule_3expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_10PolicyRule_2expand},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyRule_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyRule_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_PolicyRule[] = {
  {"conditional", __pyx_getprop_7setools_9policyrep_10PolicyRule_conditional, 0, PyDoc_STR("The conditional expression for this rule."), 0},
  {"conditional_block", __pyx_getprop_7setools_9policyrep_10PolicyRule_conditional_block, 0, PyDoc_STR("The conditional block of the rule (T/F)"), 0},
  {"default", __pyx_getprop_7setools_9policyrep_10PolicyRule_default, 0, PyDoc_STR("The rule's default."), 0},
  {"filename", __pyx_getprop_7setools_9policyrep_10PolicyRule_filename, 0, PyDoc_STR("The filename for this rule."), 0},
  {"perms", __pyx_getprop_7setools_9policyrep_10PolicyRule_perms, 0, PyDoc_STR("The permissions for this rule."), 0},
  {"tclass", __pyx_getprop_7setools_9policyrep_10PolicyRule_tclass, 0, PyDoc_STR("The rule's object class."), 0},
  {"xperm_type", __pyx_getprop_7setools_9policyrep_10PolicyRule_xperm_type, 0, PyDoc_STR("The extended permission type for this rule."), 0},
  {"ruletype", __pyx_getprop_7setools_9policyrep_10PolicyRule_ruletype, 0, 0, 0},
  {"source", __pyx_getprop_7setools_9policyrep_10PolicyRule_source, 0, 0, 0},
  {"target", __pyx_getprop_7setools_9policyrep_10PolicyRule_target, 0, 0, 0},
  {"origin", __pyx_getprop_7setools_9policyrep_10PolicyRule_origin, 0, 0, 0},
  {"extended", __pyx_getprop_7setools_9policyrep_10PolicyRule_extended, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_PolicyRule_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyRule},
  {Py_tp_doc, (void *)PyDoc_STR("This is base class for policy rules.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyRule},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyRule},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_PolicyRule},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_PolicyRule},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PolicyRule},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_PolicyRule_spec = {
  "setools.policyrep.PolicyRule",
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyRule),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_PolicyRule_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_PolicyRule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""PolicyRule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyRule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyRule, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("This is base class for policy rules."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyRule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyRule, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicyRule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_PolicyRule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyRule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_RoleTransition __pyx_vtable_7setools_9policyrep_RoleTransition;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleTransition(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleTransition *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyRule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleTransition *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_RoleTransition;
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Role *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_RoleTransition(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_RoleTransition *p = (struct __pyx_obj_7setools_9policyrep_RoleTransition *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_RoleTransition) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->dft);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyRule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_RoleTransition(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_RoleTransition *p = (struct __pyx_obj_7setools_9policyrep_RoleTransition *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyRule(o, v, a); if (e) return e;
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  if (p->dft) {
    e = (*v)(((PyObject *)p->dft), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_RoleTransition(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_RoleTransition *p = (struct __pyx_obj_7setools_9policyrep_RoleTransition *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyRule(o);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->dft);
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Role *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_RoleTransition(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_14RoleTransition_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_14RoleTransition_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14RoleTransition_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14RoleTransition_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14RoleTransition_6tclass_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleTransition[] = {
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14RoleTransition_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_14RoleTransition_4expand},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14RoleTransition_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14RoleTransition_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14RoleTransition_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_RoleTransition[] = {
  {"default", __pyx_getprop_7setools_9policyrep_14RoleTransition_default, 0, PyDoc_STR("The rule's default role."), 0},
  {"tclass", __pyx_getprop_7setools_9policyrep_14RoleTransition_tclass, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_RoleTransition_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_RoleTransition},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_14RoleTransition_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("A role_transition rule.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_RoleTransition},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_RoleTransition},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_RoleTransition},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_RoleTransition},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_RoleTransition},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_RoleTransition},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_RoleTransition_spec = {
  "setools.policyrep.RoleTransition",
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleTransition),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_RoleTransition_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_RoleTransition = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""RoleTransition", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleTransition), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_RoleTransition, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_14RoleTransition_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A role_transition rule."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_RoleTransition, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_RoleTransition, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_RoleTransition, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleTransition, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_RoleTransition, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleTransition, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_RoleAllow __pyx_vtable_7setools_9policyrep_RoleAllow;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleAllow(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleAllow *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyRule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleAllow *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_RoleAllow;
  return o;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_RoleAllow(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_9RoleAllow_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleAllow[] = {
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9RoleAllow_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_9RoleAllow_4expand},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9RoleAllow_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9RoleAllow_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9RoleAllow_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_RoleAllow_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyRule},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_9RoleAllow_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("A role allow rule.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyRule},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyRule},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_RoleAllow},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_RoleAllow},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_RoleAllow},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_RoleAllow_spec = {
  "setools.policyrep.RoleAllow",
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleAllow),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_RoleAllow_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_RoleAllow = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""RoleAllow", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleAllow), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyRule, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_9RoleAllow_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A role allow rule."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyRule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyRule, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_RoleAllow, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleAllow, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleAllow, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_MLSRule __pyx_vtable_7setools_9policyrep_MLSRule;

static PyObject *__pyx_tp_new_7setools_9policyrep_MLSRule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_MLSRule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyRule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_MLSRule *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_MLSRule;
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  p->rng = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_MLSRule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_MLSRule *p = (struct __pyx_obj_7setools_9policyrep_MLSRule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_MLSRule) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->rng);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyRule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_MLSRule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_MLSRule *p = (struct __pyx_obj_7setools_9policyrep_MLSRule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyRule(o, v, a); if (e) return e;
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  if (p->rng) {
    e = (*v)(p->rng, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_MLSRule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_MLSRule *p = (struct __pyx_obj_7setools_9policyrep_MLSRule *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyRule(o);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->rng);
  p->rng = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_MLSRule(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_7MLSRule_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_7MLSRule_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7MLSRule_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7MLSRule_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7MLSRule_6tclass_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_MLSRule[] = {
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7MLSRule_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_7MLSRule_4expand},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7MLSRule_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7MLSRule_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7MLSRule_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_MLSRule[] = {
  {"default", __pyx_getprop_7setools_9policyrep_7MLSRule_default, 0, PyDoc_STR("The rule's default range."), 0},
  {"tclass", __pyx_getprop_7setools_9policyrep_7MLSRule_tclass, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_MLSRule_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_MLSRule},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_7MLSRule_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("An MLS rule.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_MLSRule},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_MLSRule},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_MLSRule},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_MLSRule},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_MLSRule},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_MLSRule},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_MLSRule_spec = {
  "setools.policyrep.MLSRule",
  sizeof(struct __pyx_obj_7setools_9policyrep_MLSRule),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_MLSRule_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_MLSRule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""MLSRule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_MLSRule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_MLSRule, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_7MLSRule_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("An MLS rule."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_MLSRule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_MLSRule, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_MLSRule, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_MLSRule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_MLSRule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_MLSRule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy __pyx_vtable_7setools_9policyrep_SELinuxPolicy;

static PyObject *__pyx_tp_new_7setools_9policyrep_SELinuxPolicy(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_SELinuxPolicy;
  p->log = Py_None; Py_INCREF(Py_None);
  p->constraint_counts = Py_None; Py_INCREF(Py_None);
  p->terule_counts = Py_None; Py_INCREF(Py_None);
  p->type_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->category_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->sensitivity_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->path = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->handle_unknown = Py_None; Py_INCREF(Py_None);
  p->target_platform = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_7setools_9policyrep_13SELinuxPolicy_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_7setools_9policyrep_SELinuxPolicy(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *p = (struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_SELinuxPolicy) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  if (p->__weakref__) PyObject_ClearWeakRefs(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_7setools_9policyrep_13SELinuxPolicy_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->log);
  Py_CLEAR(p->constraint_counts);
  Py_CLEAR(p->terule_counts);
  Py_CLEAR(p->type_alias_map);
  Py_CLEAR(p->category_alias_map);
  Py_CLEAR(p->sensitivity_alias_map);
  Py_CLEAR(p->path);
  Py_CLEAR(p->handle_unknown);
  Py_CLEAR(p->target_platform);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_7setools_9policyrep_SELinuxPolicy(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *p = (struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->log) {
    e = (*v)(p->log, a); if (e) return e;
  }
  if (p->constraint_counts) {
    e = (*v)(p->constraint_counts, a); if (e) return e;
  }
  if (p->terule_counts) {
    e = (*v)(p->terule_counts, a); if (e) return e;
  }
  if (p->type_alias_map) {
    e = (*v)(p->type_alias_map, a); if (e) return e;
  }
  if (p->category_alias_map) {
    e = (*v)(p->category_alias_map, a); if (e) return e;
  }
  if (p->sensitivity_alias_map) {
    e = (*v)(p->sensitivity_alias_map, a); if (e) return e;
  }
  if (p->handle_unknown) {
    e = (*v)(p->handle_unknown, a); if (e) return e;
  }
  if (p->target_platform) {
    e = (*v)(p->target_platform, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_SELinuxPolicy(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *p = (struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)o;
  tmp = ((PyObject*)p->log);
  p->log = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->constraint_counts);
  p->constraint_counts = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->terule_counts);
  p->terule_counts = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->type_alias_map);
  p->type_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->category_alias_map);
  p->category_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->sensitivity_alias_map);
  p->sensitivity_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->handle_unknown);
  p->handle_unknown = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->target_platform);
  p->target_platform = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_allow_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_11allow_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_allowxperm_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_auditallow_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16auditallow_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_auditallowxperm_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_boolean_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_13boolean_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_category_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_14category_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_class_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_11class_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_common_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_12common_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_conditional_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_17conditional_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_constraint_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16constraint_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_default_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_13default_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_devicetreecon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_dontaudit_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_dontauditxperm_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_fs_use_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_12fs_use_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_genfscon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_14genfscon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ibendportcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ibpkeycon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_initialsids_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_17initialsids_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_iomemcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ioportcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_level_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_11level_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mlsconstraint_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mlsvalidatetrans_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_netifcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_14netifcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_neverallow_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16neverallow_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_neverallowxperm_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_nodecon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_pcidevicecon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_permission_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16permission_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_permissives_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_17permissives_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_pirqcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_polcap_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_12polcap_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_portcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_13portcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_allow_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16role_allow_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_transition_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_21role_transition_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_range_transition_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_10role_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_attribute_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_change_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_change_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_10type_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_member_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_member_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_transition_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_21type_transition_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_typebounds_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16typebounds_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_user_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_10user_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_validatetrans_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_path(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_4path_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_handle_unknown(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_14handle_unknown_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_target_platform(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_15target_platform_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_version(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_7version_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mls(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_3mls_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_SELinuxPolicy[] = {
  {"__copy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_9__copy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__deepcopy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11__deepcopy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"lookup_boolean", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13lookup_boolean, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_12lookup_boolean},
  {"lookup_category", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15lookup_category, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_14lookup_category},
  {"lookup_class", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17lookup_class, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_16lookup_class},
  {"lookup_common", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19lookup_common, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_18lookup_common},
  {"lookup_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21lookup_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_20lookup_context},
  {"lookup_level", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_23lookup_level, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_22lookup_level},
  {"lookup_sensitivity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_25lookup_sensitivity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_24lookup_sensitivity},
  {"lookup_range", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_27lookup_range, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_26lookup_range},
  {"lookup_role", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_29lookup_role, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_28lookup_role},
  {"lookup_type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_31lookup_type, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_30lookup_type},
  {"lookup_type_or_attr", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_33lookup_type_or_attr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_32lookup_type_or_attr},
  {"lookup_typeattr", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_35lookup_typeattr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_34lookup_typeattr},
  {"lookup_user", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_37lookup_user, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_36lookup_user},
  {"bools", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_39bools, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_38bools},
  {"bounds", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_41bounds, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_40bounds},
  {"categories", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_43categories, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_42categories},
  {"classes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_45classes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_44classes},
  {"commons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_47commons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_46commons},
  {"defaults", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_49defaults, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_48defaults},
  {"levels", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_52levels, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_51levels},
  {"polcaps", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_54polcaps, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_53polcaps},
  {"roles", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_56roles, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_55roles},
  {"sensitivities", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_58sensitivities, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_57sensitivities},
  {"types", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_60types, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_59types},
  {"typeattributes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_62typeattributes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_61typeattributes},
  {"users", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_64users, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_63users},
  {"conditionals", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_66conditionals, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_65conditionals},
  {"mlsrules", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_68mlsrules, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_67mlsrules},
  {"rbacrules", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_70rbacrules, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_69rbacrules},
  {"terules", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_72terules, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_71terules},
  {"constraints", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_75constraints, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_74constraints},
  {"fs_uses", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_78fs_uses, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_77fs_uses},
  {"genfscons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_80genfscons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_79genfscons},
  {"ibendportcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_82ibendportcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_81ibendportcons},
  {"ibpkeycons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_84ibpkeycons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_83ibpkeycons},
  {"initialsids", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_86initialsids, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_85initialsids},
  {"netifcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_88netifcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_87netifcons},
  {"nodecons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_90nodecons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_89nodecons},
  {"portcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_92portcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_91portcons},
  {"devicetreecons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_94devicetreecons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_93devicetreecons},
  {"iomemcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_96iomemcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_95iomemcons},
  {"ioportcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_98ioportcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_97ioportcons},
  {"pcidevicecons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_100pcidevicecons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_99pcidevicecons},
  {"pirqcons", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_102pirqcons, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_101pirqcons},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_104__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_106__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_SELinuxPolicy[] = {
  {"allow_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_allow_count, 0, PyDoc_STR("The number of (type) allow rules."), 0},
  {"allowxperm_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_allowxperm_count, 0, PyDoc_STR("The number of allowxperm rules."), 0},
  {"auditallow_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_auditallow_count, 0, PyDoc_STR("The number of auditallow rules."), 0},
  {"auditallowxperm_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_auditallowxperm_count, 0, PyDoc_STR("The number of auditallowxperm rules."), 0},
  {"boolean_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_boolean_count, 0, PyDoc_STR("The number of Booleans."), 0},
  {"category_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_category_count, 0, PyDoc_STR("The number of categories."), 0},
  {"class_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_class_count, 0, PyDoc_STR("The number of object classes."), 0},
  {"common_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_common_count, 0, PyDoc_STR("The number of common permission sets."), 0},
  {"conditional_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_conditional_count, 0, PyDoc_STR("The number of conditionals."), 0},
  {"constraint_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_constraint_count, 0, PyDoc_STR("The number of standard constraints."), 0},
  {"default_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_default_count, 0, PyDoc_STR("The number of default_* rules."), 0},
  {"devicetreecon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_devicetreecon_count, 0, PyDoc_STR("The number of Xen devicetreecon statements."), 0},
  {"dontaudit_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_dontaudit_count, 0, PyDoc_STR("The number of dontaudit rules."), 0},
  {"dontauditxperm_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_dontauditxperm_count, 0, PyDoc_STR("The number of dontauditxperm rules."), 0},
  {"fs_use_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_fs_use_count, 0, PyDoc_STR("The number of fs_use_* statements."), 0},
  {"genfscon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_genfscon_count, 0, PyDoc_STR("The number of genfscon statements."), 0},
  {"ibendportcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ibendportcon_count, 0, PyDoc_STR("The number of ibendportcon statements."), 0},
  {"ibpkeycon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ibpkeycon_count, 0, PyDoc_STR("The number of ibpkeycon statements."), 0},
  {"initialsids_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_initialsids_count, 0, PyDoc_STR("The number of initial sid statements."), 0},
  {"iomemcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_iomemcon_count, 0, PyDoc_STR("The number of Xen iomemcon statements."), 0},
  {"ioportcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ioportcon_count, 0, PyDoc_STR("The number of Xen ioportcon statements."), 0},
  {"level_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_level_count, 0, PyDoc_STR("The number of levels."), 0},
  {"mlsconstraint_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mlsconstraint_count, 0, PyDoc_STR("The number of MLS constraints."), 0},
  {"mlsvalidatetrans_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mlsvalidatetrans_count, 0, PyDoc_STR("The number of MLS validatetrans."), 0},
  {"netifcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_netifcon_count, 0, PyDoc_STR("The number of netifcon statements."), 0},
  {"neverallow_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_neverallow_count, 0, PyDoc_STR("The number of neverallow rules."), 0},
  {"neverallowxperm_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_neverallowxperm_count, 0, PyDoc_STR("The number of neverallowxperm rules."), 0},
  {"nodecon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_nodecon_count, 0, PyDoc_STR("The number of nodecon statements."), 0},
  {"pcidevicecon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_pcidevicecon_count, 0, PyDoc_STR("The number of Xen pcidevicecon statements."), 0},
  {"permission_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_permission_count, 0, PyDoc_STR("The number of permissions."), 0},
  {"permissives_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_permissives_count, 0, PyDoc_STR("The number of permissive types."), 0},
  {"pirqcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_pirqcon_count, 0, PyDoc_STR("The number of Xen pirqcon statements."), 0},
  {"polcap_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_polcap_count, 0, PyDoc_STR("The number of policy capabilities."), 0},
  {"portcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_portcon_count, 0, PyDoc_STR("The number of portcon statements."), 0},
  {"role_allow_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_allow_count, 0, PyDoc_STR("The number of role allow rules."), 0},
  {"role_transition_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_transition_count, 0, PyDoc_STR("The number of role_transition rules."), 0},
  {"range_transition_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_range_transition_count, 0, 0, 0},
  {"role_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_count, 0, PyDoc_STR("The number of roles."), 0},
  {"type_attribute_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_attribute_count, 0, PyDoc_STR("The number of (type) attributes."), 0},
  {"type_change_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_change_count, 0, PyDoc_STR("The number of type_change rules."), 0},
  {"type_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_count, 0, PyDoc_STR("The number of types."), 0},
  {"type_member_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_member_count, 0, PyDoc_STR("The number of type_member rules."), 0},
  {"type_transition_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_transition_count, 0, PyDoc_STR("The number of type_transition rules."), 0},
  {"typebounds_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_typebounds_count, 0, PyDoc_STR("The number of typebounds rules."), 0},
  {"user_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_user_count, 0, 0, 0},
  {"validatetrans_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_validatetrans_count, 0, PyDoc_STR("The number of validatetrans."), 0},
  {"path", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_path, 0, 0, 0},
  {"handle_unknown", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_handle_unknown, 0, 0, 0},
  {"target_platform", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_target_platform, 0, 0, 0},
  {"version", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_version, 0, 0, 0},
  {"mls", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mls, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyMemberDef __pyx_type_7setools_9policyrep_SELinuxPolicy_members[] = {
  #if !CYTHON_USE_TYPE_SLOTS
  {"__weaklistoffset__", T_PYSSIZET, offsetof(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy, __weakref__), READONLY, 0},
  #endif
  {0, 0, 0, 0, 0}
};
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x03090000
#if defined(__GNUC__) || defined(__clang__)
#warning "setools/policyrep/selinuxpolicy.pxi:38:15: : __weakref__ is unsupported in the Limited API when running on Python <3.9."
#elif defined(_MSC_VER)
#pragma message("setools/policyrep/selinuxpolicy.pxi:38:15: : __weakref__ is unsupported in the Limited API when running on Python <3.9.")
#endif
#endif
static PyType_Slot __pyx_type_7setools_9policyrep_SELinuxPolicy_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_SELinuxPolicy},
  {Py_tp_repr, (void *)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_5__repr__},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_7__str__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_SELinuxPolicy},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_SELinuxPolicy},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_SELinuxPolicy},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_SELinuxPolicy},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_SELinuxPolicy},
  {Py_tp_members, (void*)__pyx_type_7setools_9policyrep_SELinuxPolicy_members},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_SELinuxPolicy_spec = {
  "setools.policyrep.SELinuxPolicy",
  sizeof(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_SELinuxPolicy_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_SELinuxPolicy = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""SELinuxPolicy", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_SELinuxPolicy, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_7setools_9policyrep_13SELinuxPolicy_5__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_13SELinuxPolicy_7__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_SELinuxPolicy, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_SELinuxPolicy, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_SELinuxPolicy, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_SELinuxPolicy, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_SELinuxPolicy, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule __pyx_vtable_7setools_9policyrep_BaseTERule;

static PyObject *__pyx_tp_new_7setools_9policyrep_BaseTERule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_BaseTERule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyRule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_BaseTERule *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_BaseTERule;
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  p->rule_string = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_xperm_type = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_BaseTERule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_BaseTERule *p = (struct __pyx_obj_7setools_9policyrep_BaseTERule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_BaseTERule) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->rule_string);
  Py_CLEAR(p->_xperm_type);
  Py_CLEAR(p->_conditional);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyRule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_BaseTERule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_BaseTERule *p = (struct __pyx_obj_7setools_9policyrep_BaseTERule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyRule(o, v, a); if (e) return e;
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  if (p->_conditional) {
    e = (*v)(((PyObject *)p->_conditional), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_BaseTERule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_BaseTERule *p = (struct __pyx_obj_7setools_9policyrep_BaseTERule *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyRule(o);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_conditional);
  p->_conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_10BaseTERule_filename(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10BaseTERule_8filename_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10BaseTERule_conditional(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10BaseTERule_11conditional_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10BaseTERule_conditional_block(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10BaseTERule_17conditional_block_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10BaseTERule_extended(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10BaseTERule_8extended_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10BaseTERule_xperm_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10BaseTERule_10xperm_type_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10BaseTERule_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10BaseTERule_6tclass_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_BaseTERule[] = {
  {"enabled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10BaseTERule_1enabled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_10BaseTERule_enabled},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10BaseTERule_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_10BaseTERule_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_BaseTERule[] = {
  {"filename", __pyx_getprop_7setools_9policyrep_10BaseTERule_filename, 0, PyDoc_STR("The type_transition rule's file name."), 0},
  {"conditional", __pyx_getprop_7setools_9policyrep_10BaseTERule_conditional, 0, PyDoc_STR("The rule's conditional expression."), 0},
  {"conditional_block", __pyx_getprop_7setools_9policyrep_10BaseTERule_conditional_block, 0, PyDoc_STR("\n        The conditional block of the rule (T/F)\n\n        For example, if the policy looks like this:\n\n        if ( the_conditional_expression ) {\n            If the rule is here, this property is True\n        } else {\n            If the rule is here, this property is False\n        }\n        "), 0},
  {"extended", __pyx_getprop_7setools_9policyrep_10BaseTERule_extended, 0, PyDoc_STR("Whether the rule is an extended permission rule."), 0},
  {"xperm_type", __pyx_getprop_7setools_9policyrep_10BaseTERule_xperm_type, 0, PyDoc_STR("The rule's extended permission type."), 0},
  {"tclass", __pyx_getprop_7setools_9policyrep_10BaseTERule_tclass, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_BaseTERule_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_BaseTERule},
  {Py_tp_doc, (void *)PyDoc_STR("Base class for TE rules.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_BaseTERule},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_BaseTERule},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_BaseTERule},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_BaseTERule},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_BaseTERule},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_BaseTERule_spec = {
  "setools.policyrep.BaseTERule",
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseTERule),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_BaseTERule_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_BaseTERule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""BaseTERule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseTERule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseTERule, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Base class for TE rules."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseTERule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseTERule, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_BaseTERule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_BaseTERule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_BaseTERule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_AVRule __pyx_vtable_7setools_9policyrep_AVRule;

static PyObject *__pyx_tp_new_7setools_9policyrep_AVRule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_AVRule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseTERule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_AVRule *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_AVRule;
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_AVRule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_AVRule *p = (struct __pyx_obj_7setools_9policyrep_AVRule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_AVRule) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->perms);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_BaseTERule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_AVRule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_AVRule *p = (struct __pyx_obj_7setools_9policyrep_AVRule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_BaseTERule(o, v, a); if (e) return e;
  if (p->perms) {
    e = (*v)(p->perms, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_AVRule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_AVRule *p = (struct __pyx_obj_7setools_9policyrep_AVRule *)o;
  __pyx_tp_clear_7setools_9policyrep_BaseTERule(o);
  tmp = ((PyObject*)p->perms);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_AVRule(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_6AVRule_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_6AVRule_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6AVRule_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_6AVRule_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6AVRule_5perms_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_AVRule[] = {
  {"derive_expanded", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6AVRule_5derive_expanded, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_6AVRule_4derive_expanded},
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6AVRule_7expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_6AVRule_6expand},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6AVRule_10statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6AVRule_12__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6AVRule_14__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_AVRule[] = {
  {"default", __pyx_getprop_7setools_9policyrep_6AVRule_default, 0, PyDoc_STR("The rule's default type."), 0},
  {"perms", __pyx_getprop_7setools_9policyrep_6AVRule_perms, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_AVRule_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_AVRule},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_6AVRule_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("An access vector type enforcement rule.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_AVRule},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_AVRule},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_AVRule},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_AVRule},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_AVRule},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_AVRule},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_AVRule_spec = {
  "setools.policyrep.AVRule",
  sizeof(struct __pyx_obj_7setools_9policyrep_AVRule),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_AVRule_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_AVRule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""AVRule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_AVRule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_AVRule, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_6AVRule_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("An access vector type enforcement rule."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_AVRule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_AVRule, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_AVRule, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_AVRule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_AVRule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_AVRule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep_XpermSet(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __Pyx_PyType_GetSlot((&PyFrozenSet_Type), tp_new, newfunc)(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_XpermSet(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_XpermSet) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_TRASHCAN_BEGIN(o, __pyx_tp_dealloc_7setools_9policyrep_XpermSet)
  PyObject_GC_Track(o);
  __Pyx_PyType_GetSlot((&PyFrozenSet_Type), tp_dealloc, destructor)(o);
  __Pyx_TRASHCAN_END
}

static int __pyx_tp_traverse_7setools_9policyrep_XpermSet(PyObject *o, visitproc v, void *a) {
  int e;
  {
    traverseproc traverse = __Pyx_PyType_GetSlot((&PyFrozenSet_Type), tp_traverse, traverseproc);
    if (!traverse); else { e = traverse(o,v,a); if (e) return e; }
  }
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_XpermSet(PyObject *o) {
  {
    inquiry clear = __Pyx_PyType_GetSlot((&PyFrozenSet_Type), tp_clear, inquiry);
    if (clear) clear(o);
  }
  return 0;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_XpermSet[] = {
  {"__format__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8XpermSet_1__format__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8XpermSet___format__},
  {"ranges", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8XpermSet_7ranges, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8XpermSet_6ranges},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8XpermSet_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8XpermSet_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_XpermSet_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_XpermSet},
  {Py_tp_repr, (void *)__pyx_pw_7setools_9policyrep_8XpermSet_5__repr__},
  {Py_tp_str, (void *)__pyx_pw_7setools_9policyrep_8XpermSet_3__str__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    A set with overridden string functions which compresses\n    the output into ioctl/nlmsg ranges instead of individual elements.\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_XpermSet},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_XpermSet},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_XpermSet},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_XpermSet},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_XpermSet_spec = {
  "setools.policyrep.XpermSet",
  sizeof(struct __pyx_obj_7setools_9policyrep_XpermSet),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_XpermSet_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_XpermSet = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""XpermSet", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_XpermSet), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_XpermSet, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_7setools_9policyrep_8XpermSet_5__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_8XpermSet_3__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    A set with overridden string functions which compresses\n    the output into ioctl/nlmsg ranges instead of individual elements.\n    "), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_XpermSet, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_XpermSet, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_XpermSet, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_XpermSet, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyMethodDef __pyx_methods_7setools_9policyrep_IoctlSet[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8IoctlSet_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8IoctlSet_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_IoctlSet_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_XpermSet},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_XpermSet},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_XpermSet},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_IoctlSet},
  {Py_tp_init, (void *)__pyx_pw_7setools_9policyrep_8IoctlSet_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_XpermSet},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_IoctlSet_spec = {
  "setools.policyrep.IoctlSet",
  sizeof(struct __pyx_obj_7setools_9policyrep_IoctlSet),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_IoctlSet_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_IoctlSet = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""IoctlSet", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_IoctlSet), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_XpermSet, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_8XpermSet_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_8XpermSet_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_XpermSet, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_XpermSet, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_IoctlSet, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_7setools_9policyrep_8IoctlSet_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_XpermSet, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_AVRuleXperm __pyx_vtable_7setools_9policyrep_AVRuleXperm;

static PyObject *__pyx_tp_new_7setools_9policyrep_AVRuleXperm(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseTERule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_AVRuleXperm;
  p->perms = ((struct __pyx_obj_7setools_9policyrep_XpermSet *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_AVRuleXperm(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *p = (struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_AVRuleXperm) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->perms);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_BaseTERule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_AVRuleXperm(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *p = (struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_BaseTERule(o, v, a); if (e) return e;
  if (p->perms) {
    e = (*v)(((PyObject *)p->perms), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_AVRuleXperm(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *p = (struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)o;
  __pyx_tp_clear_7setools_9policyrep_BaseTERule(o);
  tmp = ((PyObject*)p->perms);
  p->perms = ((struct __pyx_obj_7setools_9policyrep_XpermSet *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_AVRuleXperm(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_11AVRuleXperm_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_11AVRuleXperm_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_11AVRuleXperm_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_11AVRuleXperm_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_11AVRuleXperm_5perms_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_AVRuleXperm[] = {
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11AVRuleXperm_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11AVRuleXperm_4expand},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11AVRuleXperm_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11AVRuleXperm_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_11AVRuleXperm_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_AVRuleXperm[] = {
  {"default", __pyx_getprop_7setools_9policyrep_11AVRuleXperm_default, 0, PyDoc_STR("The rule's default type."), 0},
  {"perms", __pyx_getprop_7setools_9policyrep_11AVRuleXperm_perms, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_AVRuleXperm_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_AVRuleXperm},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_11AVRuleXperm_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("An extended permission access vector type enforcement rule.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_AVRuleXperm},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_AVRuleXperm},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_AVRuleXperm},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_AVRuleXperm},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_AVRuleXperm},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_AVRuleXperm},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_AVRuleXperm_spec = {
  "setools.policyrep.AVRuleXperm",
  sizeof(struct __pyx_obj_7setools_9policyrep_AVRuleXperm),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_AVRuleXperm_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_AVRuleXperm = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""AVRuleXperm", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_AVRuleXperm), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_AVRuleXperm, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_11AVRuleXperm_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("An extended permission access vector type enforcement rule."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_AVRuleXperm, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_AVRuleXperm, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_AVRuleXperm, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_AVRuleXperm, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_AVRuleXperm, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_AVRuleXperm, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_TERule __pyx_vtable_7setools_9policyrep_TERule;

static PyObject *__pyx_tp_new_7setools_9policyrep_TERule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TERule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseTERule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TERule *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_TERule;
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_TERule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_TERule *p = (struct __pyx_obj_7setools_9policyrep_TERule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_TERule) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->dft);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_BaseTERule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_TERule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_TERule *p = (struct __pyx_obj_7setools_9policyrep_TERule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_BaseTERule(o, v, a); if (e) return e;
  if (p->dft) {
    e = (*v)(((PyObject *)p->dft), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_TERule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_TERule *p = (struct __pyx_obj_7setools_9policyrep_TERule *)o;
  __pyx_tp_clear_7setools_9policyrep_BaseTERule(o);
  tmp = ((PyObject*)p->dft);
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_TERule(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_6TERule_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_6TERule_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6TERule_5perms_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_6TERule_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6TERule_7default_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_TERule[] = {
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6TERule_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_6TERule_4expand},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6TERule_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6TERule_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_6TERule_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_TERule[] = {
  {"perms", __pyx_getprop_7setools_9policyrep_6TERule_perms, 0, PyDoc_STR("The rule's permission set."), 0},
  {"default", __pyx_getprop_7setools_9policyrep_6TERule_default, 0, PyDoc_STR("The rule's default type."), 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_TERule_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_TERule},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_6TERule_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("A type_* type enforcement rule.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_TERule},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_TERule},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_TERule},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_TERule},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_TERule},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_TERule},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_TERule_spec = {
  "setools.policyrep.TERule",
  sizeof(struct __pyx_obj_7setools_9policyrep_TERule),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_TERule_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_TERule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""TERule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TERule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_TERule, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_6TERule_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A type_* type enforcement rule."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_TERule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_TERule, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_TERule, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TERule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_TERule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TERule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERule __pyx_vtable_7setools_9policyrep_FileNameTERule;

static PyObject *__pyx_tp_new_7setools_9policyrep_FileNameTERule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseTERule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_FileNameTERule;
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  p->filename = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_FileNameTERule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_FileNameTERule) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->dft);
  Py_CLEAR(p->filename);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_BaseTERule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_FileNameTERule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_BaseTERule(o, v, a); if (e) return e;
  if (p->dft) {
    e = (*v)(((PyObject *)p->dft), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_FileNameTERule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERule *)o;
  __pyx_tp_clear_7setools_9policyrep_BaseTERule(o);
  tmp = ((PyObject*)p->dft);
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_FileNameTERule(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_14FileNameTERule_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_14FileNameTERule_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14FileNameTERule_5perms_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14FileNameTERule_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14FileNameTERule_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14FileNameTERule_filename(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14FileNameTERule_8filename_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_FileNameTERule[] = {
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14FileNameTERule_5expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_14FileNameTERule_4expand},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14FileNameTERule_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14FileNameTERule_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14FileNameTERule_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_FileNameTERule[] = {
  {"perms", __pyx_getprop_7setools_9policyrep_14FileNameTERule_perms, 0, PyDoc_STR("The rule's permission set."), 0},
  {"default", __pyx_getprop_7setools_9policyrep_14FileNameTERule_default, 0, PyDoc_STR("The rule's default type."), 0},
  {"filename", __pyx_getprop_7setools_9policyrep_14FileNameTERule_filename, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_FileNameTERule_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_FileNameTERule},
  {Py_tp_hash, (void *)__pyx_pw_7setools_9policyrep_14FileNameTERule_1__hash__},
  {Py_tp_doc, (void *)PyDoc_STR("A type_transition type enforcement rule with filename.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_FileNameTERule},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_FileNameTERule},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7setools_9policyrep_FileNameTERule},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_FileNameTERule},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_FileNameTERule},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_FileNameTERule},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_FileNameTERule_spec = {
  "setools.policyrep.FileNameTERule",
  sizeof(struct __pyx_obj_7setools_9policyrep_FileNameTERule),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_FileNameTERule_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_FileNameTERule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""FileNameTERule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_FileNameTERule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_FileNameTERule, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_14FileNameTERule_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A type_transition type enforcement rule with filename."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_FileNameTERule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_FileNameTERule, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_FileNameTERule, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_FileNameTERule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_FileNameTERule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_FileNameTERule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator __pyx_vtable_7setools_9policyrep_TERuleIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TERuleIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_TERuleIterator;
  p->conditional = Py_None; Py_INCREF(Py_None);
  p->cond_block = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_TERuleIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_TERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_TERuleIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_TERuleIterator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->conditional);
  Py_CLEAR(p->cond_block);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_TERuleIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_TERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_TERuleIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->conditional) {
    e = (*v)(p->conditional, a); if (e) return e;
  }
  if (p->cond_block) {
    e = (*v)(p->cond_block, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_TERuleIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_TERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_TERuleIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->conditional);
  p->conditional = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->cond_block);
  p->cond_block = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_TERuleIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"ruletype_count", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14TERuleIterator_5ruletype_count, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_14TERuleIterator_4ruletype_count},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14TERuleIterator_7reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_14TERuleIterator_6reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14TERuleIterator_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_14TERuleIterator_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_TERuleIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_TERuleIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_14TERuleIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_14TERuleIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for access vector tables.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_TERuleIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_TERuleIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_TERuleIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_TERuleIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_TERuleIterator_spec = {
  "setools.policyrep.TERuleIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_TERuleIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_TERuleIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_TERuleIterator = {
  __pyx_pw_7setools_9policyrep_14TERuleIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_TERuleIterator = {
  __pyx_pw_7setools_9policyrep_14TERuleIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_TERuleIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""TERuleIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TERuleIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_TERuleIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_TERuleIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_TERuleIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for access vector tables."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_TERuleIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_TERuleIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TERuleIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TERuleIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalTERuleIterator __pyx_vtable_7setools_9policyrep_ConditionalTERuleIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalTERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_ConditionalTERuleIterator;
  p->conditional = Py_None; Py_INCREF(Py_None);
  p->conditional_block = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ConditionalTERuleIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_ConditionalTERuleIterator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->conditional);
  Py_CLEAR(p->conditional_block);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ConditionalTERuleIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->conditional) {
    e = (*v)(p->conditional, a); if (e) return e;
  }
  if (p->conditional_block) {
    e = (*v)(p->conditional_block, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ConditionalTERuleIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->conditional);
  p->conditional = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->conditional_block);
  p->conditional_block = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConditionalTERuleIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"ruletype_count", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_5ruletype_count, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_25ConditionalTERuleIterator_4ruletype_count},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_7reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_25ConditionalTERuleIterator_6reset},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_ConditionalTERuleIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_ConditionalTERuleIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Conditional TE rule iterator.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_ConditionalTERuleIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_ConditionalTERuleIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_ConditionalTERuleIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_ConditionalTERuleIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_ConditionalTERuleIterator_spec = {
  "setools.policyrep.ConditionalTERuleIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_ConditionalTERuleIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_ConditionalTERuleIterator = {
  __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConditionalTERuleIterator = {
  __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConditionalTERuleIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""ConditionalTERuleIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConditionalTERuleIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConditionalTERuleIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConditionalTERuleIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Conditional TE rule iterator."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConditionalTERuleIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConditionalTERuleIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConditionalTERuleIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConditionalTERuleIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERuleIterator __pyx_vtable_7setools_9policyrep_FileNameTERuleIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_FileNameTERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_FileNameTERuleIterator;
  p->stypei = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_FileNameTERuleIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_FileNameTERuleIterator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->stypei);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_FileNameTERuleIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->stypei) {
    e = (*v)(((PyObject *)p->stypei), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_FileNameTERuleIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->stypei);
  p->stypei = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_FileNameTERuleIterator[] = {
  {"_next_stype", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_1_next_stype, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_7reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_FileNameTERuleIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_FileNameTERuleIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_5__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_5__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over FileNameTERules in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_FileNameTERuleIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_FileNameTERuleIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_FileNameTERuleIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_FileNameTERuleIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_FileNameTERuleIterator_spec = {
  "setools.policyrep.FileNameTERuleIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_FileNameTERuleIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_FileNameTERuleIterator = {
  __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_5__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_FileNameTERuleIterator = {
  __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_5__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_FileNameTERuleIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""FileNameTERuleIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_FileNameTERuleIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_FileNameTERuleIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_FileNameTERuleIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over FileNameTERules in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_FileNameTERuleIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_FileNameTERuleIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_FileNameTERuleIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_FileNameTERuleIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_BaseType __pyx_vtable_7setools_9policyrep_BaseType;

static PyObject *__pyx_tp_new_7setools_9policyrep_BaseType(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_BaseType *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_BaseType *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_BaseType;
  return o;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_BaseType[] = {
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8BaseType_1expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8BaseType_expand},
  {"attributes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8BaseType_3attributes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8BaseType_2attributes},
  {"aliases", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8BaseType_5aliases, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_8BaseType_4aliases},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8BaseType_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8BaseType_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_BaseType_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicySymbol},
  {Py_tp_doc, (void *)PyDoc_STR("Type/attribute base class.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyObject},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyObject},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_BaseType},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_BaseType},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_BaseType_spec = {
  "setools.policyrep.BaseType",
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseType),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_BaseType_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_BaseType = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""BaseType", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseType), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Type/attribute base class."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyObject, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyObject, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_BaseType, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_BaseType, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Type __pyx_vtable_7setools_9policyrep_Type;

static PyObject *__pyx_tp_new_7setools_9policyrep_Type(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Type *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseType(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Type *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Type;
  p->ispermissive = Py_None; Py_INCREF(Py_None);
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_attrs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Type(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Type *p = (struct __pyx_obj_7setools_9policyrep_Type *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Type) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ispermissive);
  Py_CLEAR(p->_aliases);
  Py_CLEAR(p->_attrs);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Type(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Type *p = (struct __pyx_obj_7setools_9policyrep_Type *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->ispermissive) {
    e = (*v)(p->ispermissive, a); if (e) return e;
  }
  if (p->_aliases) {
    e = (*v)(p->_aliases, a); if (e) return e;
  }
  if (p->_attrs) {
    e = (*v)(p->_attrs, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Type(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Type *p = (struct __pyx_obj_7setools_9policyrep_Type *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->ispermissive);
  p->ispermissive = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_aliases);
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_attrs);
  p->_attrs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_4Type_ispermissive(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_4Type_12ispermissive_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Type[] = {
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_1expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_4Type_expand},
  {"attributes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_4attributes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_4Type_3attributes},
  {"aliases", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_6aliases, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_4Type_5aliases},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_8statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_10__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4Type_12__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Type[] = {
  {"ispermissive", __pyx_getprop_7setools_9policyrep_4Type_ispermissive, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Type_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Type},
  {Py_tp_doc, (void *)PyDoc_STR("A type.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Type},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Type},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Type},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Type},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Type},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Type_spec = {
  "setools.policyrep.Type",
  sizeof(struct __pyx_obj_7setools_9policyrep_Type),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Type_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Type = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Type", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Type), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Type, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A type."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Type, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Type, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Type, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Type, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Type, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute __pyx_vtable_7setools_9policyrep_TypeAttribute;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttribute(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseType(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_TypeAttribute;
  p->_types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_TypeAttribute(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *p = (struct __pyx_obj_7setools_9policyrep_TypeAttribute *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_TypeAttribute) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_types);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_TypeAttribute(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *p = (struct __pyx_obj_7setools_9policyrep_TypeAttribute *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_types) {
    e = (*v)(p->_types, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_TypeAttribute(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *p = (struct __pyx_obj_7setools_9policyrep_TypeAttribute *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_types);
  p->_types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_13TypeAttribute_ispermissive(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13TypeAttribute_12ispermissive_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeAttribute[] = {
  {"expand", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_7expand, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13TypeAttribute_6expand},
  {"attributes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_9attributes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13TypeAttribute_8attributes},
  {"aliases", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_11aliases, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13TypeAttribute_10aliases},
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_13statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_15__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13TypeAttribute_17__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_TypeAttribute[] = {
  {"ispermissive", __pyx_getprop_7setools_9policyrep_13TypeAttribute_ispermissive, 0, PyDoc_STR("(T/F) the type is permissive."), 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_TypeAttribute_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_TypeAttribute},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_13TypeAttribute_5__len__},
  {Py_sq_contains, (void *)__pyx_pw_7setools_9policyrep_13TypeAttribute_1__contains__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_13TypeAttribute_5__len__},
  {Py_tp_doc, (void *)PyDoc_STR("A type attribute.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_TypeAttribute},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_TypeAttribute},
  {Py_tp_iter, (void *)__pyx_pw_7setools_9policyrep_13TypeAttribute_3__iter__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_TypeAttribute},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_TypeAttribute},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_TypeAttribute},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_TypeAttribute_spec = {
  "setools.policyrep.TypeAttribute",
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeAttribute),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_TypeAttribute_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_TypeAttribute = {
  __pyx_pw_7setools_9policyrep_13TypeAttribute_5__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_13TypeAttribute_1__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_TypeAttribute = {
  __pyx_pw_7setools_9policyrep_13TypeAttribute_5__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_TypeAttribute = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""TypeAttribute", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeAttribute), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_TypeAttribute, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_TypeAttribute, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_TypeAttribute, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A type attribute."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_TypeAttribute, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_TypeAttribute, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_7setools_9policyrep_13TypeAttribute_3__iter__, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeAttribute, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_TypeAttribute, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeAttribute, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_TypeHashtabIterator __pyx_vtable_7setools_9policyrep_TypeHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_TypeHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_TypeHashtabIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over types in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_TypeHashtabIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_TypeHashtabIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_TypeHashtabIterator_spec = {
  "setools.policyrep.TypeHashtabIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_TypeHashtabIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_TypeHashtabIterator = {
  __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_TypeHashtabIterator = {
  __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_TypeHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""TypeHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_TypeHashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_TypeHashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over types in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeHashtabIterator __pyx_vtable_7setools_9policyrep_TypeAttributeHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttributeHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_TypeAttributeHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeAttributeHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_5reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_sq_length, (void *)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_3__len__},
  {Py_mp_length, (void *)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_3__len__},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over type attributes in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_TypeAttributeHashtabIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_TypeAttributeHashtabIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator_spec = {
  "setools.policyrep.TypeAttributeHashtabIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_TypeAttributeHashtabIterator = {
  __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_TypeAttributeHashtabIterator = {
  __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""TypeAttributeHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_TypeAttributeHashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_TypeAttributeHashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over type attributes in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeAttributeHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeAttributeHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_TypeEbitmapIterator __pyx_vtable_7setools_9policyrep_TypeEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_TypeEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_TypeEbitmapIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over a type ebitmap.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_TypeEbitmapIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_TypeEbitmapIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_TypeEbitmapIterator_spec = {
  "setools.policyrep.TypeEbitmapIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_TypeEbitmapIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_TypeEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""TypeEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over a type ebitmap."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeEbitmapIterator __pyx_vtable_7setools_9policyrep_TypeAttributeEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttributeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_TypeAttributeEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeAttributeEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over a type attribute ebitmap.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_TypeAttributeEbitmapIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_TypeAttributeEbitmapIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator_spec = {
  "setools.policyrep.TypeAttributeEbitmapIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""TypeAttributeEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over a type attribute ebitmap."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeAttributeEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeAttributeEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_TypeOrAttributeEbitmapIterator __pyx_vtable_7setools_9policyrep_TypeOrAttributeEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeOrAttributeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_TypeOrAttributeEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeOrAttributeEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over a type or type attribute ebitmap.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_TypeOrAttributeEbitmapIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_TypeOrAttributeEbitmapIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator_spec = {
  "setools.policyrep.TypeOrAttributeEbitmapIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""TypeOrAttributeEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over a type or type attribute ebitmap."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeOrAttributeEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeOrAttributeEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_User __pyx_vtable_7setools_9policyrep_User;

static PyObject *__pyx_tp_new_7setools_9policyrep_User(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_User *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_User *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_User;
  p->roles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_level = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  p->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_User(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_User *p = (struct __pyx_obj_7setools_9policyrep_User *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_User) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->roles);
  Py_CLEAR(p->_level);
  Py_CLEAR(p->_range);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_User(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_User *p = (struct __pyx_obj_7setools_9policyrep_User *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->roles) {
    e = (*v)(p->roles, a); if (e) return e;
  }
  if (p->_level) {
    e = (*v)(((PyObject *)p->_level), a); if (e) return e;
  }
  if (p->_range) {
    e = (*v)(((PyObject *)p->_range), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_User(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_User *p = (struct __pyx_obj_7setools_9policyrep_User *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->roles);
  p->roles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_level);
  p->_level = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_range);
  p->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_4User_mls_level(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_4User_9mls_level_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_4User_mls_range(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_4User_9mls_range_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_4User_roles(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_4User_5roles_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_User[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4User_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4User_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_4User_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_User[] = {
  {"mls_level", __pyx_getprop_7setools_9policyrep_4User_mls_level, 0, PyDoc_STR("The user's default MLS level."), 0},
  {"mls_range", __pyx_getprop_7setools_9policyrep_4User_mls_range, 0, PyDoc_STR("The user's MLS range."), 0},
  {"roles", __pyx_getprop_7setools_9policyrep_4User_roles, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_User_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_User},
  {Py_tp_doc, (void *)PyDoc_STR("A user.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_User},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_User},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_User},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_User},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_User},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_User_spec = {
  "setools.policyrep.User",
  sizeof(struct __pyx_obj_7setools_9policyrep_User),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_User_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_User = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""User", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_User), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_User, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicySymbol_3__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A user."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_User, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_User, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_User, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_User, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_User, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_UserHashtabIterator __pyx_vtable_7setools_9policyrep_UserHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_UserHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_UserHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_UserHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19UserHashtabIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19UserHashtabIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_UserHashtabIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over users in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_UserHashtabIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_UserHashtabIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_UserHashtabIterator_spec = {
  "setools.policyrep.UserHashtabIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_UserHashtabIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_UserHashtabIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_UserHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""UserHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_UserHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over users in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_UserHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_UserHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_UserEbitmapIterator __pyx_vtable_7setools_9policyrep_UserEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_UserEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_UserEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_UserEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_UserEbitmapIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterate over a user ebitmap.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_UserEbitmapIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_UserEbitmapIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_UserEbitmapIterator_spec = {
  "setools.policyrep.UserEbitmapIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_UserEbitmapIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_UserEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""UserEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterate over a user ebitmap."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_UserEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_UserEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Devicetreecon __pyx_vtable_7setools_9policyrep_Devicetreecon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Devicetreecon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Devicetreecon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Devicetreecon;
  p->path = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Devicetreecon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Devicetreecon *p = (struct __pyx_obj_7setools_9policyrep_Devicetreecon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Devicetreecon) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->path);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13Devicetreecon_path(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13Devicetreecon_4path_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Devicetreecon[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Devicetreecon_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Devicetreecon_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_13Devicetreecon_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Devicetreecon[] = {
  {"path", __pyx_getprop_7setools_9policyrep_13Devicetreecon_path, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Devicetreecon_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Devicetreecon},
  {Py_tp_doc, (void *)PyDoc_STR("A devicetreecon statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Ocontext},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Ocontext},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Devicetreecon},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Devicetreecon},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Devicetreecon},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Devicetreecon_spec = {
  "setools.policyrep.Devicetreecon",
  sizeof(struct __pyx_obj_7setools_9policyrep_Devicetreecon),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Devicetreecon_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Devicetreecon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Devicetreecon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Devicetreecon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Devicetreecon, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A devicetreecon statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ocontext, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ocontext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Devicetreecon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Devicetreecon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Devicetreecon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Iomemcon __pyx_vtable_7setools_9policyrep_Iomemcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Iomemcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Iomemcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Iomemcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Iomemcon;
  p->addr = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Iomemcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Iomemcon *p = (struct __pyx_obj_7setools_9policyrep_Iomemcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Iomemcon) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->addr);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Iomemcon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Iomemcon *p = (struct __pyx_obj_7setools_9policyrep_Iomemcon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->addr) {
    e = (*v)(p->addr, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Iomemcon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Iomemcon *p = (struct __pyx_obj_7setools_9policyrep_Iomemcon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->addr);
  p->addr = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Iomemcon_addr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Iomemcon_4addr_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Iomemcon[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Iomemcon_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Iomemcon_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_8Iomemcon_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Iomemcon[] = {
  {"addr", __pyx_getprop_7setools_9policyrep_8Iomemcon_addr, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Iomemcon_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Iomemcon},
  {Py_tp_doc, (void *)PyDoc_STR("A iomemcon statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Iomemcon},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Iomemcon},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Iomemcon},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Iomemcon},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Iomemcon},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Iomemcon_spec = {
  "setools.policyrep.Iomemcon",
  sizeof(struct __pyx_obj_7setools_9policyrep_Iomemcon),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Iomemcon_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Iomemcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Iomemcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Iomemcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Iomemcon, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A iomemcon statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Iomemcon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Iomemcon, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Iomemcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Iomemcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Iomemcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Ioportcon __pyx_vtable_7setools_9policyrep_Ioportcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Ioportcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Ioportcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Ioportcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Ioportcon;
  p->ports = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Ioportcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Ioportcon *p = (struct __pyx_obj_7setools_9policyrep_Ioportcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Ioportcon) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ports);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Ioportcon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Ioportcon *p = (struct __pyx_obj_7setools_9policyrep_Ioportcon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->ports) {
    e = (*v)(p->ports, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Ioportcon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Ioportcon *p = (struct __pyx_obj_7setools_9policyrep_Ioportcon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->ports);
  p->ports = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_9Ioportcon_ports(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_9Ioportcon_5ports_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Ioportcon[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ioportcon_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ioportcon_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_9Ioportcon_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Ioportcon[] = {
  {"ports", __pyx_getprop_7setools_9policyrep_9Ioportcon_ports, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Ioportcon_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Ioportcon},
  {Py_tp_doc, (void *)PyDoc_STR("A ioportcon statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Ioportcon},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Ioportcon},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Ioportcon},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Ioportcon},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Ioportcon},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Ioportcon_spec = {
  "setools.policyrep.Ioportcon",
  sizeof(struct __pyx_obj_7setools_9policyrep_Ioportcon),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Ioportcon_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Ioportcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Ioportcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Ioportcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Ioportcon, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A ioportcon statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ioportcon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ioportcon, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Ioportcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Ioportcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Ioportcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Pcidevicecon __pyx_vtable_7setools_9policyrep_Pcidevicecon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Pcidevicecon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Pcidevicecon;
  p->device = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Pcidevicecon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *p = (struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Pcidevicecon) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->device);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Pcidevicecon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *p = (struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->device) {
    e = (*v)(p->device, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Pcidevicecon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *p = (struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->device);
  p->device = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_12Pcidevicecon_device(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12Pcidevicecon_6device_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Pcidevicecon[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Pcidevicecon_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Pcidevicecon_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_12Pcidevicecon_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Pcidevicecon[] = {
  {"device", __pyx_getprop_7setools_9policyrep_12Pcidevicecon_device, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Pcidevicecon_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Pcidevicecon},
  {Py_tp_doc, (void *)PyDoc_STR("A pcidevicecon statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Pcidevicecon},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Pcidevicecon},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Pcidevicecon},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Pcidevicecon},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Pcidevicecon},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Pcidevicecon_spec = {
  "setools.policyrep.Pcidevicecon",
  sizeof(struct __pyx_obj_7setools_9policyrep_Pcidevicecon),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Pcidevicecon_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Pcidevicecon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Pcidevicecon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Pcidevicecon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Pcidevicecon, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A pcidevicecon statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Pcidevicecon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Pcidevicecon, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Pcidevicecon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Pcidevicecon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Pcidevicecon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_Pirqcon __pyx_vtable_7setools_9policyrep_Pirqcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Pirqcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Pirqcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Pirqcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Pirqcon;
  p->irq = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Pirqcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Pirqcon *p = (struct __pyx_obj_7setools_9policyrep_Pirqcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep_Pirqcon) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->irq);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Pirqcon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Pirqcon *p = (struct __pyx_obj_7setools_9policyrep_Pirqcon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->irq) {
    e = (*v)(p->irq, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Pirqcon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Pirqcon *p = (struct __pyx_obj_7setools_9policyrep_Pirqcon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->irq);
  p->irq = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Pirqcon_irq(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Pirqcon_3irq_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Pirqcon[] = {
  {"statement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Pirqcon_1statement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Pirqcon_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_7Pirqcon_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Pirqcon[] = {
  {"irq", __pyx_getprop_7setools_9policyrep_7Pirqcon_irq, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_Pirqcon_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_Pirqcon},
  {Py_tp_doc, (void *)PyDoc_STR("A pirqcon statement.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_Pirqcon},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_Pirqcon},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_Pirqcon},
  {Py_tp_getset, (void *)__pyx_getsets_7setools_9policyrep_Pirqcon},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_Pirqcon},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_Pirqcon_spec = {
  "setools.policyrep.Pirqcon",
  sizeof(struct __pyx_obj_7setools_9policyrep_Pirqcon),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_Pirqcon_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_Pirqcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""Pirqcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Pirqcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Pirqcon, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("A pirqcon statement."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Pirqcon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Pirqcon, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Pirqcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Pirqcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Pirqcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_DevicetreeconIterator __pyx_vtable_7setools_9policyrep_DevicetreeconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_DevicetreeconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_DevicetreeconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_DevicetreeconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_DevicetreeconIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for devicetreecon statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_DevicetreeconIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_DevicetreeconIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_DevicetreeconIterator_spec = {
  "setools.policyrep.DevicetreeconIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_DevicetreeconIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_DevicetreeconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""DevicetreeconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for devicetreecon statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_DevicetreeconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_DevicetreeconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_IomemconIterator __pyx_vtable_7setools_9policyrep_IomemconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_IomemconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_IomemconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_IomemconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_IomemconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_IomemconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16IomemconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_16IomemconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_IomemconIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for iomemcon statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_IomemconIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_IomemconIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_IomemconIterator_spec = {
  "setools.policyrep.IomemconIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_IomemconIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_IomemconIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_IomemconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""IomemconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_IomemconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for iomemcon statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_IomemconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_IomemconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_IoportconIterator __pyx_vtable_7setools_9policyrep_IoportconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_IoportconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_IoportconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_IoportconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_IoportconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_IoportconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17IoportconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_17IoportconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_IoportconIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for ioportcon statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_IoportconIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_IoportconIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_IoportconIterator_spec = {
  "setools.policyrep.IoportconIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_IoportconIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_IoportconIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_IoportconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""IoportconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_IoportconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for ioportcon statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_IoportconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_IoportconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_PcideviceconIterator __pyx_vtable_7setools_9policyrep_PcideviceconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_PcideviceconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PcideviceconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PcideviceconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20PcideviceconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_20PcideviceconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_PcideviceconIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for pcidevicecon statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_PcideviceconIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PcideviceconIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_PcideviceconIterator_spec = {
  "setools.policyrep.PcideviceconIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_PcideviceconIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_PcideviceconIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_PcideviceconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""PcideviceconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PcideviceconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for pcidevicecon statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PcideviceconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PcideviceconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7setools_9policyrep_PirqconIterator __pyx_vtable_7setools_9policyrep_PirqconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_PirqconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PirqconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PirqconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PirqconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  PyObject *res = __pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__(self);
  if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }
  return res;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PirqconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15PirqconIterator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7setools_9policyrep_15PirqconIterator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep_PirqconIterator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep_PolicyIterator},
  {Py_tp_doc, (void *)PyDoc_STR("Iterator for pirqcon statements in the policy.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep_PolicyIterator},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep_PolicyIterator},
  {Py_tp_iternext, (void *)__pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__},
  {Py_tp_methods, (void *)__pyx_methods_7setools_9policyrep_PirqconIterator},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep_PirqconIterator},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep_PirqconIterator_spec = {
  "setools.policyrep.PirqconIterator",
  sizeof(struct __pyx_obj_7setools_9policyrep_PirqconIterator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep_PirqconIterator_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep_PirqconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""PirqconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PirqconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Iterator for pirqcon statements in the policy."), /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PirqconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PirqconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_defaults(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 1);
  if (unlikely(!o)) return 0;
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_defaults(PyObject *o) {
  struct __pyx_defaults *p = (struct __pyx_defaults *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_defaults) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->arg0);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_defaults(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_defaults *p = (struct __pyx_defaults *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->arg0) {
    e = (*v)(p->arg0, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_defaults(PyObject *o) {
  PyObject* tmp;
  struct __pyx_defaults *p = (struct __pyx_defaults *)o;
  tmp = ((PyObject*)p->arg0);
  p->arg0 = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_defaults_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_defaults},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_defaults},
  {Py_tp_clear, (void *)__pyx_tp_clear_7setools_9policyrep___pyx_defaults},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_defaults},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_defaults_spec = {
  "setools.policyrep.__pyx_defaults",
  sizeof(struct __pyx_defaults),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_defaults_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_defaults = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_defaults", /*tp_name*/
  sizeof(struct __pyx_defaults), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_defaults, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_defaults, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_defaults, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_defaults, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct__genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct__genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct__genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct__genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct__genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct__genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_b);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct__genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct__genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct__genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct__genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_b) {
    e = (*v)(p->__pyx_v_b, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct__genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct__genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct__genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct__genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct__genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct__genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct__genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct__genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct__genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct__genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct__genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct__genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_1_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_1_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_1_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_1_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_1_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_1_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_j);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_1_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_1_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_1_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_1_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_j) {
    e = (*v)(p->__pyx_v_j, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_1_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_1_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_1_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_1_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_1_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_1_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_1_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_1_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_2_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_2_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_2_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_2_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_2_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_2_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_j);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_2_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_2_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_2_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_2_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_j) {
    e = (*v)(p->__pyx_v_j, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_2_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_2_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_2_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_2_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_2_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_2_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_2_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_2_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_2_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_2_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_2_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_2_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_3_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_3_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_3_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_3_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_3_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_3_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_3_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_3_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_3_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_3_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_3_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_3_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_3_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_3_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_3_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_3_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_3_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_3_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_4_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_4_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_4_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_4_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_4_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_4_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_4_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_4_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_4_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_4_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_4_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_4_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_4_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_4_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_4_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_4_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_4_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_4_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_5_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_5_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_5_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_5_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_5_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_5_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_5_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_5_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_5_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_5_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_5_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_5_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_5_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_5_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_5_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_5_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_5_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_5_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_5_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_5_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_5_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_5_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_6_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_6_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_6_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_6_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_6_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_6_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_u);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_6_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_6_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_6_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_6_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_u) {
    e = (*v)(p->__pyx_v_u, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_6_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_6_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_6_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_6_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_6_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_6_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_6_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_6_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_7_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_7_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_7_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_7_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_7_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_7_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_c);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_7_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_7_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_7_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_7_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_c) {
    e = (*v)(p->__pyx_v_c, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_7_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_7_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_7_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_7_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_7_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_7_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_7_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_7_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_8_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_8_expand > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_8_expand[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_8_expand];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_8_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_8_expand) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_8_expand < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_8_expand[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_8_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_8_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_8_expand_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_8_expand},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_8_expand},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_8_expand},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_8_expand_spec = {
  "setools.policyrep.__pyx_scope_struct_8_expand",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_8_expand_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_8_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_8_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_8_expand, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_8_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_8_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_9_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_9_expand > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_9_expand[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_9_expand];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_9_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_9_expand) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_9_expand < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_9_expand[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_9_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_9_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_9_expand_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_9_expand},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_9_expand},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_9_expand},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_9_expand_spec = {
  "setools.policyrep.__pyx_scope_struct_9_expand",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_9_expand_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_9_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_9_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_9_expand, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_9_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_9_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_10_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_10_expand > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_10_expand[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_10_expand];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_10_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_10_expand) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_10_expand < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_10_expand[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_10_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_10_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_10_expand},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_10_expand},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_10_expand},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand_spec = {
  "setools.policyrep.__pyx_scope_struct_10_expand",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_10_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_10_expand, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_10_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_10_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_11_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_11_expand > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_11_expand[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_11_expand];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_11_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_11_expand) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_11_expand < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_11_expand[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_11_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_11_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_11_expand},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_11_expand},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_11_expand},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand_spec = {
  "setools.policyrep.__pyx_scope_struct_11_expand",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_11_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_11_expand, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_11_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_11_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_12_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_12_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_12_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_12_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_12_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_12_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_t);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_12_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_12_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_12_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_12_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_12_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_12_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_12_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_12_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_12_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_12_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_12_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_12_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_12_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_12_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_12_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_12_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_13_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_13_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_13_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_13_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_13_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_13_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v__);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_13_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_13_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_13_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_13_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v__) {
    e = (*v)(p->__pyx_v__, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_13_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_13_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_13_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_13_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_13_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_13_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_13_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_13_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_13_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_13_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_13_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_13_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_14_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_14_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_14_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_14_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_14_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_14_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_d);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_14_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_14_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_14_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_14_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_d) {
    e = (*v)(p->__pyx_v_d, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_14_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_14_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_14_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_14_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_14_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_14_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_14_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_14_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_14_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_14_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_14_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_14_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_15_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_15_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_15_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_15_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_15_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_15_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v__);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_15_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_15_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_15_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_15_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v__) {
    e = (*v)(p->__pyx_v__, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_15_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_15_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_15_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_15_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_15_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_15_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_15_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_15_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_16_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_16_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_16_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_16_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_16_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_16_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_n);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_16_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_16_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_16_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_16_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_n) {
    e = (*v)(p->__pyx_v_n, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_16_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_16_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_16_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_16_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_16_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_16_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_16_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_16_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_16_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_16_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_16_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_16_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_17_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_17_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_17_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_17_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_17_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_17_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_c);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_17_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_17_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_17_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_17_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_c) {
    e = (*v)(p->__pyx_v_c, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_17_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_17_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_17_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_17_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_17_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_17_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_17_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_17_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_18_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_18_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_18_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_18_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_18_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_18_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_18_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_18_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_18_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_18_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_18_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_18_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_18_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_18_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_18_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_18_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_18_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_18_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_18_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_18_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_18_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_18_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_19_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_19_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_19_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_19_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_19_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_19_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_19_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_19_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_19_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_19_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_19_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_19_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_19_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_19_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_19_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_19_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_19_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_19_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_20_defaults(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_20_defaults > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_20_defaults[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_20_defaults];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_20_defaults(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_20_defaults) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_cls);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_20_defaults < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_20_defaults[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_20_defaults++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_20_defaults(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_cls) {
    e = (*v)(p->__pyx_v_cls, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_20_defaults_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_20_defaults},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_20_defaults},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_20_defaults},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_20_defaults_spec = {
  "setools.policyrep.__pyx_scope_struct_20_defaults",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_20_defaults_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_20_defaults = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_20_defaults", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20_defaults), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_20_defaults, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_20_defaults, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_20_defaults, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_21_terules(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_21_terules > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_21_terules[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_21_terules];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_21_terules(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_21_terules) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_c);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_21_terules < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_21_terules[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_21_terules++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_21_terules(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_c) {
    e = (*v)(p->__pyx_v_c, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_21_terules_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_21_terules},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_21_terules},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_21_terules},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_21_terules_spec = {
  "setools.policyrep.__pyx_scope_struct_21_terules",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_21_terules_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_21_terules = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_21_terules", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_terules), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_21_terules, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_21_terules, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_21_terules, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_22_constraints(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_22_constraints > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_22_constraints[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_22_constraints];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_22_constraints(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_22_constraints) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_c);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_22_constraints < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_22_constraints[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_22_constraints++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_22_constraints(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_c) {
    e = (*v)(p->__pyx_v_c, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_22_constraints_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_22_constraints},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_22_constraints},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_22_constraints},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_22_constraints_spec = {
  "setools.policyrep.__pyx_scope_struct_22_constraints",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_22_constraints_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_22_constraints = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_22_constraints", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22_constraints), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_22_constraints, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_22_constraints, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_22_constraints, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_23_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_23_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_23_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_23_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_23_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_23_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_23_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_23_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_23_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_23_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_23_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_23_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_23_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_23_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_23_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_23_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_23_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_23_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_24_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_24_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_24_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_24_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_24_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_24_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_p);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_24_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_24_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_24_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_24_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_p) {
    e = (*v)(p->__pyx_v_p, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_24_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_24_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_24_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_24_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_24_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_24_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_24_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_24_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_24_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_24_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_24_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_24_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_25_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_25_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_25_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_25_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_25_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_25_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_p);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_25_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_25_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_25_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_25_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_p) {
    e = (*v)(p->__pyx_v_p, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_25_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_25_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_25_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_25_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_25_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_25_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_25_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_25_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_26_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_26_expand > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_26_expand[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_26_expand];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_26_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_26_expand) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_26_expand < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_26_expand[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_26_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_26_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_26_expand_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_26_expand},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_26_expand},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_26_expand},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_26_expand_spec = {
  "setools.policyrep.__pyx_scope_struct_26_expand",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_26_expand_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_26_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_26_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_26_expand, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_26_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_26_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_27_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_27_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_27_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_27_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_27_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_27_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v__a);
  Py_CLEAR(p->__pyx_v__b);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_27_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_27_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_27_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_27_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v__a) {
    e = (*v)(p->__pyx_v__a, a); if (e) return e;
  }
  if (p->__pyx_v__b) {
    e = (*v)(p->__pyx_v__b, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_27_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_27_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_27_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_27_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_27_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_27_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_27_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_27_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_28_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_28_expand > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_28_expand[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_28_expand];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_28_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_28_expand) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_28_expand < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_28_expand[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_28_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_28_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_28_expand_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_28_expand},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_28_expand},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_28_expand},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_28_expand_spec = {
  "setools.policyrep.__pyx_scope_struct_28_expand",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_28_expand_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_28_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_28_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_28_expand, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_28_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_28_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_29_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_29_expand > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_29_expand[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_29_expand];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_29_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_29_expand) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_29_expand < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_29_expand[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_29_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_29_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_29_expand_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_29_expand},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_29_expand},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_29_expand},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_29_expand_spec = {
  "setools.policyrep.__pyx_scope_struct_29_expand",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_29_expand_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_29_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_29_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_29_expand, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_29_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_29_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_30_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_30_expand > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_30_expand[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_30_expand];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_30_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_30_expand) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_30_expand < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_30_expand[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_30_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_30_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_30_expand_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_30_expand},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_30_expand},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_30_expand},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_30_expand_spec = {
  "setools.policyrep.__pyx_scope_struct_30_expand",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_30_expand_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_30_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_30_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_30_expand, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_30_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_30_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_31_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_31_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_31_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_31_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_31_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_31_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_31_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_31_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_31_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_31_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_31_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_31_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_31_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_31_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_31_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_31_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_31_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_31_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_31_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_31_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_31_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_31_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_32_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_32_expand > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_32_expand[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_32_expand];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_32_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_32_expand) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_32_expand < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_32_expand[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_32_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_32_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_32_expand_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_32_expand},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_32_expand},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_32_expand},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_32_expand_spec = {
  "setools.policyrep.__pyx_scope_struct_32_expand",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_32_expand_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_32_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_32_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_32_expand, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_32_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_32_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_33_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_33_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_33_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_33_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_33_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_33_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_a);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_33_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_33_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_33_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_33_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_a) {
    e = (*v)(p->__pyx_v_a, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_33_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_33_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_33_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_33_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_33_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_33_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_33_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_33_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_33_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_33_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_33_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_33_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_34_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_34_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_34_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_34_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_34_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_34_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_34_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_34_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_34_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_34_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_34_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_34_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_34_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_34_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_34_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_34_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_34_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_34_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_35_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_35_genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_35_genexpr[--__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_35_genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_35_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_35_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_r);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_35_genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_7setools_9policyrep___pyx_scope_struct_35_genexpr[__pyx_mstate_global->__pyx_freecount_7setools_9policyrep___pyx_scope_struct_35_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_35_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7setools_9policyrep___pyx_scope_struct_35_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_35_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_35_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_35_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_7setools_9policyrep___pyx_scope_struct_35_genexpr_spec = {
  "setools.policyrep.__pyx_scope_struct_35_genexpr",
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7setools_9policyrep___pyx_scope_struct_35_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_35_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.""__pyx_scope_struct_35_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_35_genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_35_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_35_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};

static int __pyx_import_star_set(__pyx_mstatetype *__pyx_mstate,PyObject *o, PyObject* py_name, const char *name) {
  static const char* internal_type_names[] = {
    "AVRule",
    "AVRuleXperm",
    "BaseConstraint",
    "BaseMLSLevel",
    "BaseTERule",
    "BaseType",
    "Boolean",
    "BooleanHashtabIterator",
    "Bounds",
    "Category",
    "CategoryEbitmapIterator",
    "CategoryHashtabIterator",
    "Common",
    "CommonHashtabIterator",
    "Conditional",
    "ConditionalExprIterator",
    "ConditionalIterator",
    "ConditionalOperator",
    "ConditionalTERuleIterator",
    "Constraint",
    "ConstraintExprIterator",
    "ConstraintExprNode",
    "ConstraintExpression",
    "ConstraintIterator",
    "Context",
    "Default",
    "DefaultRange",
    "Devicetreecon",
    "DevicetreeconIterator",
    "EbitmapIterator",
    "FILE",
    "FSUse",
    "FSUseIterator",
    "FileContexts",
    "FileNameTERule",
    "FileNameTERuleIterator",
    "GenfsFiletype",
    "Genfscon",
    "GenfsconIterator",
    "GenfsconOcontextIterator",
    "HashtabIterator",
    "Ibendportcon",
    "IbendportconIterator",
    "Ibpkeycon",
    "IbpkeyconIterator",
    "InitialSID",
    "InitialSIDIterator",
    "IoctlSet",
    "Iomemcon",
    "IomemconIterator",
    "Ioportcon",
    "IoportconIterator",
    "Level",
    "LevelDecl",
    "LevelDeclHashtabIterator",
    "MLSRule",
    "MLSRuleIterator",
    "Netifcon",
    "NetifconIterator",
    "Nodecon",
    "NodeconIterator",
    "ObjClass",
    "ObjClassHashtabIterator",
    "Ocontext",
    "OcontextIterator",
    "Pcidevicecon",
    "PcideviceconIterator",
    "PermissionVectorIterator",
    "Pirqcon",
    "PirqconIterator",
    "PolicyCapability",
    "PolicyCapabilityIterator",
    "PolicyIterator",
    "PolicyObject",
    "PolicyRule",
    "PolicySymbol",
    "Portcon",
    "PortconIterator",
    "Range",
    "Role",
    "RoleAllow",
    "RoleAllowIterator",
    "RoleEbitmapIterator",
    "RoleHashtabIterator",
    "RoleTransition",
    "RoleTransitionIterator",
    "SELinuxPolicy",
    "Sensitivity",
    "SensitivityHashtabIterator",
    "TERule",
    "TERuleIterator",
    "Type",
    "TypeAttribute",
    "TypeAttributeEbitmapIterator",
    "TypeAttributeHashtabIterator",
    "TypeEbitmapIterator",
    "TypeHashtabIterator",
    "TypeOrAttributeEbitmapIterator",
    "TypeboundsIterator",
    "User",
    "UserEbitmapIterator",
    "UserHashtabIterator",
    "Validatetrans",
    "ValidatetransIterator",
    "XpermSet",
    "__pyx_ctuple_4libc_6stdint_uint16_t__and_4libc_6stdint_uint16_t",
    "__pyx_ctuple_4libc_6stdint_uint16_t__and_4libc_6stdint_uint16_t_struct",
    "__pyx_ctuple_4libc_6stdint_uint32_t",
    "__pyx_ctuple_4libc_6stdint_uint32_t__and_4libc_6stdint_uint32_t",
    "__pyx_ctuple_4libc_6stdint_uint32_t__and_4libc_6stdint_uint32_t_struct",
    "__pyx_ctuple_4libc_6stdint_uint32_t_struct",
    "__pyx_ctuple_4libc_6stdint_uint64_t__and_4libc_6stdint_uint64_t",
    "__pyx_ctuple_4libc_6stdint_uint64_t__and_4libc_6stdint_uint64_t_struct",
    "__pyx_ctuple_4libc_6stdint_uint8_t",
    "__pyx_ctuple_4libc_6stdint_uint8_t_struct",
    "__pyx_ctuple_Py_ssize_t",
    "__pyx_ctuple_Py_ssize_t_struct",
    "__pyx_ctuple_char__ptr",
    "__pyx_ctuple_char__ptr_struct",
    "__pyx_ctuple_int",
    "__pyx_ctuple_int__and_long__and_long",
    "__pyx_ctuple_int__and_long__and_long_struct",
    "__pyx_ctuple_int_struct",
    "__pyx_ctuple_long",
    "__pyx_ctuple_long_struct",
    "__pyx_ctuple_size_t",
    "__pyx_ctuple_size_t__and_size_t",
    "__pyx_ctuple_size_t__and_size_t_struct",
    "__pyx_ctuple_size_t_struct",
    "__pyx_ctuple_unsigned__space_int",
    "__pyx_ctuple_unsigned__space_int_struct",
    "__pyx_defaults",
    "__pyx_scope_struct_10_expand",
    "__pyx_scope_struct_11_expand",
    "__pyx_scope_struct_12_genexpr",
    "__pyx_scope_struct_13_genexpr",
    "__pyx_scope_struct_14_genexpr",
    "__pyx_scope_struct_15_genexpr",
    "__pyx_scope_struct_16_genexpr",
    "__pyx_scope_struct_17_genexpr",
    "__pyx_scope_struct_18_genexpr",
    "__pyx_scope_struct_19_genexpr",
    "__pyx_scope_struct_1_genexpr",
    "__pyx_scope_struct_20_defaults",
    "__pyx_scope_struct_21_terules",
    "__pyx_scope_struct_22_constraints",
    "__pyx_scope_struct_23_genexpr",
    "__pyx_scope_struct_24_genexpr",
    "__pyx_scope_struct_25_genexpr",
    "__pyx_scope_struct_26_expand",
    "__pyx_scope_struct_27_genexpr",
    "__pyx_scope_struct_28_expand",
    "__pyx_scope_struct_29_expand",
    "__pyx_scope_struct_2_genexpr",
    "__pyx_scope_struct_30_expand",
    "__pyx_scope_struct_31_genexpr",
    "__pyx_scope_struct_32_expand",
    "__pyx_scope_struct_33_genexpr",
    "__pyx_scope_struct_34_genexpr",
    "__pyx_scope_struct_35_genexpr",
    "__pyx_scope_struct_3_genexpr",
    "__pyx_scope_struct_4_genexpr",
    "__pyx_scope_struct_5_genexpr",
    "__pyx_scope_struct_6_genexpr",
    "__pyx_scope_struct_7_genexpr",
    "__pyx_scope_struct_8_expand",
    "__pyx_scope_struct_9_expand",
    "__pyx_scope_struct__genexpr",
    "socklen_t",
    "uint16_t",
    "uint32_t",
    "uint64_t",
    "uint8_t",
    "uintptr_t",
    "va_list",
    0
  };
  const char** type_name = internal_type_names;
  while (*type_name) {
    if (__Pyx_StrEq(name, *type_name)) {
      PyErr_Format(PyExc_TypeError, "Cannot overwrite C type %s", name);
      goto bad;
    }
    type_name++;
  }
  if (0);
  else if (__Pyx_StrEq(name, "_cat_cache")) {
    Py_INCREF(o);
    Py_DECREF(__pyx_v_7setools_9policyrep__cat_cache);
    __pyx_v_7setools_9policyrep__cat_cache = o;
  }
  else if (__Pyx_StrEq(name, "_common_cache")) {
    Py_INCREF(o);
    Py_DECREF(__pyx_v_7setools_9policyrep__common_cache);
    __pyx_v_7setools_9policyrep__common_cache = o;
  }
  else if (__Pyx_StrEq(name, "_cond_cache")) {
    Py_INCREF(o);
    Py_DECREF(__pyx_v_7setools_9policyrep__cond_cache);
    __pyx_v_7setools_9policyrep__cond_cache = o;
  }
  else if (__Pyx_StrEq(name, "_leveldecl_cache")) {
    Py_INCREF(o);
    Py_DECREF(__pyx_v_7setools_9policyrep__leveldecl_cache);
    __pyx_v_7setools_9policyrep__leveldecl_cache = o;
  }
  else if (__Pyx_StrEq(name, "_objclass_cache")) {
    Py_INCREF(o);
    Py_DECREF(__pyx_v_7setools_9policyrep__objclass_cache);
    __pyx_v_7setools_9policyrep__objclass_cache = o;
  }
  else if (__Pyx_StrEq(name, "_sens_cache")) {
    Py_INCREF(o);
    Py_DECREF(__pyx_v_7setools_9policyrep__sens_cache);
    __pyx_v_7setools_9policyrep__sens_cache = o;
  }
  else if (__Pyx_StrEq(name, "_type_cache")) {
    Py_INCREF(o);
    Py_DECREF(__pyx_v_7setools_9policyrep__type_cache);
    __pyx_v_7setools_9policyrep__type_cache = o;
  }
  else if (__Pyx_StrEq(name, "_typeattr_cache")) {
    Py_INCREF(o);
    Py_DECREF(__pyx_v_7setools_9policyrep__typeattr_cache);
    __pyx_v_7setools_9policyrep__typeattr_cache = o;
  }
  else if (__Pyx_StrEq(name, "_user_cache")) {
    Py_INCREF(o);
    Py_DECREF(__pyx_v_7setools_9policyrep__user_cache);
    __pyx_v_7setools_9policyrep__user_cache = o;
  }
  else if (__Pyx_StrEq(name, "errno")) {
    errno = __Pyx_PyLong_As_int(o); if (unlikely((errno == (int)-1) && PyErr_Occurred())) __PYX_ERR(25, 127, __pyx_L2_error)
  }
  else {
    if (PyObject_SetAttr(__pyx_m, py_name, o) < 0) goto bad;
  }
  return 0;
  __pyx_L2_error:;
  __Pyx_AddTraceback("setools.policyrep", __pyx_clineno, __pyx_lineno, __pyx_filename);
  bad:
  return -1;
}

/* ImportStar */
static int
__Pyx_import_all_from(PyObject *locals, PyObject *v)
{
    PyObject *all = PyObject_GetAttrString(v, "__all__");
    PyObject *dict, *name, *value;
    int skip_leading_underscores = 0;
    int pos, err;
    if (all == NULL) {
        if (!PyErr_ExceptionMatches(PyExc_AttributeError))
            return -1;
        PyErr_Clear();
        dict = PyObject_GetAttrString(v, "__dict__");
        if (dict == NULL) {
            if (!PyErr_ExceptionMatches(PyExc_AttributeError))
                return -1;
            PyErr_SetString(PyExc_ImportError,
            "from-import-* object has no __dict__ and no __all__");
            return -1;
        }
        all = PyMapping_Keys(dict);
        Py_DECREF(dict);
        if (all == NULL)
            return -1;
        skip_leading_underscores = 1;
    }
    for (pos = 0, err = 0; ; pos++) {
        name = PySequence_GetItem(all, pos);
        if (name == NULL) {
            if (!PyErr_ExceptionMatches(PyExc_IndexError))
                err = -1;
            else
                PyErr_Clear();
            break;
        }
        if (skip_leading_underscores && likely(PyUnicode_Check(name))) {
            Py_ssize_t length = __Pyx_PyUnicode_GET_LENGTH(name);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely(length < 0)) {
                Py_DECREF(name);
                return -1;
            }
            #endif
            if (likely(length) && __Pyx_PyUnicode_READ_CHAR(name, 0) == '_') {
                Py_DECREF(name);
                continue;
            }
        }
        value = PyObject_GetAttr(v, name);
        if (value == NULL)
            err = -1;
        else if (PyDict_CheckExact(locals))
            err = PyDict_SetItem(locals, name, value);
        else
            err = PyObject_SetItem(locals, name, value);
        Py_DECREF(name);
        Py_XDECREF(value);
        if (err != 0)
            break;
    }
    Py_DECREF(all);
    return err;
}
static int __pyx_import_star(PyObject* m) {
    int i;
    int ret = -1;
    const char* s;
    PyObject *locals = 0;
    PyObject *list = 0;
    PyObject *utf8_name = 0;
    PyObject *name;
    PyObject *item;
    PyObject *import_obj;
    Py_ssize_t size;
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(m);
    locals = PyDict_New();              if (!locals) goto bad;
    if (__Pyx_import_all_from(locals, m) < 0) goto bad;
    list = PyDict_Items(locals);        if (!list) goto bad;
    size = __Pyx_PyList_GET_SIZE(list);
    #if !CYTHON_ASSUME_SAFE_SIZE
    if (size < 0) goto bad;
    #endif
    for(i=0; i<size; i++) {
        import_obj = __Pyx_PyList_GET_ITEM(list, i); if (!import_obj) goto bad;
        name = __Pyx_PyTuple_GET_ITEM(import_obj, 0); if (!name) goto bad;
        item = __Pyx_PyTuple_GET_ITEM(import_obj, 1); if (!item) goto bad;
        utf8_name = PyUnicode_AsUTF8String(name);
        if (!utf8_name) goto bad;
        s = __Pyx_PyBytes_AsString(utf8_name); if (!s) goto bad;
        if (__pyx_import_star_set(mstate, item, name, s) < 0) goto bad;
        Py_DECREF(utf8_name); utf8_name = 0;
    }
    ret = 0;
bad:
    Py_XDECREF(locals);
    Py_XDECREF(list);
    Py_XDECREF(utf8_name);
    return ret;
}

/* #### Code section: initfunc_declarations ### */
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __pyx_import_star_set(__pyx_mstatetype *__pyx_mstate,PyObject *o, PyObject* py_name, const char *name); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/
/* #### Code section: init_module ### */

static int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __pyx_v_7setools_9policyrep__cond_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__cat_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__sens_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__leveldecl_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__common_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__objclass_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__type_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__typeattr_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__user_cache = Py_None; Py_INCREF(Py_None);
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileContexts = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_FileContexts_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileContexts)) __PYX_ERR(11, 17, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_FileContexts_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileContexts) < (0)) __PYX_ERR(11, 17, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileContexts = &__pyx_type_7setools_9policyrep_FileContexts;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileContexts) < (0)) __PYX_ERR(11, 17, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileContexts);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileContexts->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileContexts->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileContexts->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FileContexts, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileContexts) < (0)) __PYX_ERR(11, 17, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileContexts) < (0)) __PYX_ERR(11, 17, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)(&PyLong_Type)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsFiletype = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_GenfsFiletype_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsFiletype)) __PYX_ERR(12, 50, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_GenfsFiletype_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsFiletype) < (0)) __PYX_ERR(12, 50, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsFiletype = &__pyx_type_7setools_9policyrep_GenfsFiletype;
  #endif
  if (sizeof(struct __pyx_obj_7setools_9policyrep_GenfsFiletype) != sizeof(PyLongObject)) {
    if (__Pyx_validate_extern_base((&PyLong_Type)) < (0)) __PYX_ERR(12, 50, __pyx_L1_error)
  }
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype->tp_base = (&PyLong_Type);
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsFiletype) < (0)) __PYX_ERR(12, 50, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsFiletype);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsFiletype->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsFiletype->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsFiletype->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_GenfsFiletype, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsFiletype) < (0)) __PYX_ERR(12, 50, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsFiletype) < (0)) __PYX_ERR(12, 50, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_GenfsconIterator = &__pyx_vtable_7setools_9policyrep_GenfsconIterator;
  __pyx_vtable_7setools_9policyrep_GenfsconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, genfs_t *))__pyx_f_7setools_9policyrep_16GenfsconIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_GenfsconIterator_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator)) __PYX_ERR(12, 158, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_GenfsconIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator) < (0)) __PYX_ERR(12, 158, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator = &__pyx_type_7setools_9policyrep_GenfsconIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator) < (0)) __PYX_ERR(12, 158, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator, __pyx_vtabptr_7setools_9policyrep_GenfsconIterator) < (0)) __PYX_ERR(12, 158, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator) < (0)) __PYX_ERR(12, 158, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_GenfsconIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator) < (0)) __PYX_ERR(12, 158, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconIterator) < (0)) __PYX_ERR(12, 158, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_PolicyObject = &__pyx_vtable_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_PolicyObject._eq = (int (*)(struct __pyx_obj_7setools_9policyrep_PolicyObject *, struct __pyx_obj_7setools_9policyrep_PolicyObject *))__pyx_f_7setools_9policyrep_12PolicyObject__eq;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_PolicyObject_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject)) __PYX_ERR(4, 10, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_PolicyObject_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject) < (0)) __PYX_ERR(4, 10, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject = &__pyx_type_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject) < (0)) __PYX_ERR(4, 10, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject, __pyx_vtabptr_7setools_9policyrep_PolicyObject) < (0)) __PYX_ERR(4, 10, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject) < (0)) __PYX_ERR(4, 10, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PolicyObject, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject) < (0)) __PYX_ERR(4, 10, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyObject) < (0)) __PYX_ERR(4, 10, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Range = &__pyx_vtable_7setools_9policyrep_Range;
  __pyx_vtable_7setools_9policyrep_Range.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_Range.factory = (struct __pyx_obj_7setools_9policyrep_Range *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_range_t *))__pyx_f_7setools_9policyrep_5Range_factory;
  __pyx_vtable_7setools_9policyrep_Range.factory_from_string = (struct __pyx_obj_7setools_9policyrep_Range *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *))__pyx_f_7setools_9policyrep_5Range_factory_from_string;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Range = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Range_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Range)) __PYX_ERR(3, 381, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Range_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Range) < (0)) __PYX_ERR(3, 381, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Range = &__pyx_type_7setools_9policyrep_Range;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Range) < (0)) __PYX_ERR(3, 381, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Range);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Range->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Range->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Range->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Range, __pyx_vtabptr_7setools_9policyrep_Range) < (0)) __PYX_ERR(3, 381, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Range) < (0)) __PYX_ERR(3, 381, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Range, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Range) < (0)) __PYX_ERR(3, 381, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Range) < (0)) __PYX_ERR(3, 381, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_BaseMLSLevel = &__pyx_vtable_7setools_9policyrep_BaseMLSLevel;
  __pyx_vtable_7setools_9policyrep_BaseMLSLevel.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_BaseMLSLevel_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel)) __PYX_ERR(3, 156, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_BaseMLSLevel_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel) < (0)) __PYX_ERR(3, 156, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel = &__pyx_type_7setools_9policyrep_BaseMLSLevel;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseMLSLevel->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel) < (0)) __PYX_ERR(3, 156, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel, __pyx_vtabptr_7setools_9policyrep_BaseMLSLevel) < (0)) __PYX_ERR(3, 156, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel) < (0)) __PYX_ERR(3, 156, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BaseMLSLevel, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel) < (0)) __PYX_ERR(3, 156, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseMLSLevel) < (0)) __PYX_ERR(3, 156, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Level = &__pyx_vtable_7setools_9policyrep_Level;
  __pyx_vtable_7setools_9policyrep_Level.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseMLSLevel;
  __pyx_vtable_7setools_9policyrep_Level.factory = (struct __pyx_obj_7setools_9policyrep_Level *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_level_t *))__pyx_f_7setools_9policyrep_5Level_factory;
  __pyx_vtable_7setools_9policyrep_Level.factory_from_string = (struct __pyx_obj_7setools_9policyrep_Level *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *))__pyx_f_7setools_9policyrep_5Level_factory_from_string;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseMLSLevel); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Level = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Level_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Level)) __PYX_ERR(3, 257, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Level_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Level) < (0)) __PYX_ERR(3, 257, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Level = &__pyx_type_7setools_9policyrep_Level;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseMLSLevel;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Level) < (0)) __PYX_ERR(3, 257, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Level);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Level->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Level->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Level->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Level, __pyx_vtabptr_7setools_9policyrep_Level) < (0)) __PYX_ERR(3, 257, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Level) < (0)) __PYX_ERR(3, 257, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Level, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Level) < (0)) __PYX_ERR(3, 257, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Level) < (0)) __PYX_ERR(3, 257, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_LevelDecl = &__pyx_vtable_7setools_9policyrep_LevelDecl;
  __pyx_vtable_7setools_9policyrep_LevelDecl.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseMLSLevel;
  __pyx_vtable_7setools_9policyrep_LevelDecl.factory = (struct __pyx_obj_7setools_9policyrep_LevelDecl *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *))__pyx_f_7setools_9policyrep_9LevelDecl_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseMLSLevel); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_LevelDecl_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl)) __PYX_ERR(3, 194, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_LevelDecl_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl) < (0)) __PYX_ERR(3, 194, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl = &__pyx_type_7setools_9policyrep_LevelDecl;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDecl->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseMLSLevel;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl) < (0)) __PYX_ERR(3, 194, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl, __pyx_vtabptr_7setools_9policyrep_LevelDecl) < (0)) __PYX_ERR(3, 194, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl) < (0)) __PYX_ERR(3, 194, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LevelDecl, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl) < (0)) __PYX_ERR(3, 194, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDecl) < (0)) __PYX_ERR(3, 194, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Default = &__pyx_vtable_7setools_9policyrep_Default;
  __pyx_vtable_7setools_9policyrep_Default.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_Default.factory = (struct __pyx_obj_7setools_9policyrep_Default *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, PyObject *, PyObject *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_7Default_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Default = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Default_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Default)) __PYX_ERR(10, 75, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Default_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Default) < (0)) __PYX_ERR(10, 75, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Default = &__pyx_type_7setools_9policyrep_Default;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Default->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Default) < (0)) __PYX_ERR(10, 75, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Default);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Default->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Default->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Default->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Default, __pyx_vtabptr_7setools_9policyrep_Default) < (0)) __PYX_ERR(10, 75, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Default) < (0)) __PYX_ERR(10, 75, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Default, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Default) < (0)) __PYX_ERR(10, 75, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Default) < (0)) __PYX_ERR(10, 75, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_DefaultRange = &__pyx_vtable_7setools_9policyrep_DefaultRange;
  __pyx_vtable_7setools_9policyrep_DefaultRange.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Default;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Default); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_DefaultRange_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange)) __PYX_ERR(10, 149, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_DefaultRange_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange) < (0)) __PYX_ERR(10, 149, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange = &__pyx_type_7setools_9policyrep_DefaultRange;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_DefaultRange->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Default;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange) < (0)) __PYX_ERR(10, 149, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange, __pyx_vtabptr_7setools_9policyrep_DefaultRange) < (0)) __PYX_ERR(10, 149, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange) < (0)) __PYX_ERR(10, 149, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DefaultRange, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange) < (0)) __PYX_ERR(10, 149, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_DefaultRange) < (0)) __PYX_ERR(10, 149, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Context = &__pyx_vtable_7setools_9policyrep_Context;
  __pyx_vtable_7setools_9policyrep_Context.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_Context.factory = (struct __pyx_obj_7setools_9policyrep_Context *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, context_struct_t *))__pyx_f_7setools_9policyrep_7Context_factory;
  __pyx_vtable_7setools_9policyrep_Context.factory_from_string = (struct __pyx_obj_7setools_9policyrep_Context *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *))__pyx_f_7setools_9policyrep_7Context_factory_from_string;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Context = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Context_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Context)) __PYX_ERR(9, 7, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Context_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Context) < (0)) __PYX_ERR(9, 7, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Context = &__pyx_type_7setools_9policyrep_Context;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Context) < (0)) __PYX_ERR(9, 7, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Context);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Context->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Context->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Context->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Context, __pyx_vtabptr_7setools_9policyrep_Context) < (0)) __PYX_ERR(9, 7, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Context) < (0)) __PYX_ERR(9, 7, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Context, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Context) < (0)) __PYX_ERR(9, 7, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Context) < (0)) __PYX_ERR(9, 7, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_ConstraintExprNode = &__pyx_vtable_7setools_9policyrep_ConstraintExprNode;
  __pyx_vtable_7setools_9policyrep_ConstraintExprNode.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_ConstraintExprNode.factory = (struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *))__pyx_f_7setools_9policyrep_18ConstraintExprNode_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_ConstraintExprNode_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode)) __PYX_ERR(2, 249, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_ConstraintExprNode_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode) < (0)) __PYX_ERR(2, 249, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode = &__pyx_type_7setools_9policyrep_ConstraintExprNode;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode) < (0)) __PYX_ERR(2, 249, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode, __pyx_vtabptr_7setools_9policyrep_ConstraintExprNode) < (0)) __PYX_ERR(2, 249, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode) < (0)) __PYX_ERR(2, 249, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ConstraintExprNode, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode) < (0)) __PYX_ERR(2, 249, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprNode) < (0)) __PYX_ERR(2, 249, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_ConstraintExpression = &__pyx_vtable_7setools_9policyrep_ConstraintExpression;
  __pyx_vtable_7setools_9policyrep_ConstraintExpression.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_ConstraintExpression.factory = (struct __pyx_obj_7setools_9policyrep_ConstraintExpression *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *))__pyx_f_7setools_9policyrep_20ConstraintExpression_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_ConstraintExpression_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression)) __PYX_ERR(2, 94, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_ConstraintExpression_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression) < (0)) __PYX_ERR(2, 94, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression = &__pyx_type_7setools_9policyrep_ConstraintExpression;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExpression->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression) < (0)) __PYX_ERR(2, 94, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression, __pyx_vtabptr_7setools_9policyrep_ConstraintExpression) < (0)) __PYX_ERR(2, 94, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression) < (0)) __PYX_ERR(2, 94, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ConstraintExpression, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression) < (0)) __PYX_ERR(2, 94, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExpression) < (0)) __PYX_ERR(2, 94, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_BaseConstraint = &__pyx_vtable_7setools_9policyrep_BaseConstraint;
  __pyx_vtable_7setools_9policyrep_BaseConstraint.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_BaseConstraint_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint)) __PYX_ERR(2, 27, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_BaseConstraint_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint) < (0)) __PYX_ERR(2, 27, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint = &__pyx_type_7setools_9policyrep_BaseConstraint;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseConstraint->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint) < (0)) __PYX_ERR(2, 27, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint, __pyx_vtabptr_7setools_9policyrep_BaseConstraint) < (0)) __PYX_ERR(2, 27, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint) < (0)) __PYX_ERR(2, 27, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BaseConstraint, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint) < (0)) __PYX_ERR(2, 27, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseConstraint) < (0)) __PYX_ERR(2, 27, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Validatetrans = &__pyx_vtable_7setools_9policyrep_Validatetrans;
  __pyx_vtable_7setools_9policyrep_Validatetrans.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseConstraint;
  __pyx_vtable_7setools_9policyrep_Validatetrans.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *))__pyx_f_7setools_9policyrep_13Validatetrans_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseConstraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Validatetrans_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans)) __PYX_ERR(2, 70, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Validatetrans_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans) < (0)) __PYX_ERR(2, 70, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans = &__pyx_type_7setools_9policyrep_Validatetrans;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Validatetrans->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseConstraint;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans) < (0)) __PYX_ERR(2, 70, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans, __pyx_vtabptr_7setools_9policyrep_Validatetrans) < (0)) __PYX_ERR(2, 70, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans) < (0)) __PYX_ERR(2, 70, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Validatetrans, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans) < (0)) __PYX_ERR(2, 70, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Validatetrans) < (0)) __PYX_ERR(2, 70, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Constraint = &__pyx_vtable_7setools_9policyrep_Constraint;
  __pyx_vtable_7setools_9policyrep_Constraint.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseConstraint;
  __pyx_vtable_7setools_9policyrep_Constraint.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *))__pyx_f_7setools_9policyrep_10Constraint_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseConstraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Constraint_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint)) __PYX_ERR(2, 41, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Constraint_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint) < (0)) __PYX_ERR(2, 41, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint = &__pyx_type_7setools_9policyrep_Constraint;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Constraint->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseConstraint;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint) < (0)) __PYX_ERR(2, 41, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint, __pyx_vtabptr_7setools_9policyrep_Constraint) < (0)) __PYX_ERR(2, 41, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint) < (0)) __PYX_ERR(2, 41, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Constraint, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint) < (0)) __PYX_ERR(2, 41, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Constraint) < (0)) __PYX_ERR(2, 41, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Bounds = &__pyx_vtable_7setools_9policyrep_Bounds;
  __pyx_vtable_7setools_9policyrep_Bounds.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_Bounds.factory = (struct __pyx_obj_7setools_9policyrep_Bounds *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_6Bounds_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Bounds_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds)) __PYX_ERR(8, 18, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Bounds_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds) < (0)) __PYX_ERR(8, 18, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds = &__pyx_type_7setools_9policyrep_Bounds;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Bounds->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds) < (0)) __PYX_ERR(8, 18, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds, __pyx_vtabptr_7setools_9policyrep_Bounds) < (0)) __PYX_ERR(8, 18, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds) < (0)) __PYX_ERR(8, 18, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Bounds, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds) < (0)) __PYX_ERR(8, 18, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Bounds) < (0)) __PYX_ERR(8, 18, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_ConditionalOperator = &__pyx_vtable_7setools_9policyrep_ConditionalOperator;
  __pyx_vtable_7setools_9policyrep_ConditionalOperator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_ConditionalOperator.factory = (struct __pyx_obj_7setools_9policyrep_ConditionalOperator *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_expr_t *))__pyx_f_7setools_9policyrep_19ConditionalOperator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_ConditionalOperator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator)) __PYX_ERR(6, 219, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_ConditionalOperator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator) < (0)) __PYX_ERR(6, 219, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator = &__pyx_type_7setools_9policyrep_ConditionalOperator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalOperator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator) < (0)) __PYX_ERR(6, 219, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator, __pyx_vtabptr_7setools_9policyrep_ConditionalOperator) < (0)) __PYX_ERR(6, 219, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator) < (0)) __PYX_ERR(6, 219, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ConditionalOperator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator) < (0)) __PYX_ERR(6, 219, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalOperator) < (0)) __PYX_ERR(6, 219, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Conditional = &__pyx_vtable_7setools_9policyrep_Conditional;
  __pyx_vtable_7setools_9policyrep_Conditional.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_Conditional.factory = (struct __pyx_obj_7setools_9policyrep_Conditional *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_node_t *))__pyx_f_7setools_9policyrep_11Conditional_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Conditional_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional)) __PYX_ERR(6, 43, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Conditional_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional) < (0)) __PYX_ERR(6, 43, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional = &__pyx_type_7setools_9policyrep_Conditional;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional) < (0)) __PYX_ERR(6, 43, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional, __pyx_vtabptr_7setools_9policyrep_Conditional) < (0)) __PYX_ERR(6, 43, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional) < (0)) __PYX_ERR(6, 43, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Conditional, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional) < (0)) __PYX_ERR(6, 43, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Conditional) < (0)) __PYX_ERR(6, 43, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_PolicySymbol = &__pyx_vtable_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_PolicySymbol.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_PolicySymbol_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol)) __PYX_ERR(4, 69, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_PolicySymbol_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol) < (0)) __PYX_ERR(4, 69, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol = &__pyx_type_7setools_9policyrep_PolicySymbol;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol) < (0)) __PYX_ERR(4, 69, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol, __pyx_vtabptr_7setools_9policyrep_PolicySymbol) < (0)) __PYX_ERR(4, 69, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol) < (0)) __PYX_ERR(4, 69, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PolicySymbol, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol) < (0)) __PYX_ERR(4, 69, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicySymbol) < (0)) __PYX_ERR(4, 69, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_ObjClass = &__pyx_vtable_7setools_9policyrep_ObjClass;
  __pyx_vtable_7setools_9policyrep_ObjClass.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_ObjClass.factory = (struct __pyx_obj_7setools_9policyrep_ObjClass *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, class_datum_t *))__pyx_f_7setools_9policyrep_8ObjClass_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_ObjClass_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass)) __PYX_ERR(16, 68, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_ObjClass_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass) < (0)) __PYX_ERR(16, 68, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass = &__pyx_type_7setools_9policyrep_ObjClass;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass) < (0)) __PYX_ERR(16, 68, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass, __pyx_vtabptr_7setools_9policyrep_ObjClass) < (0)) __PYX_ERR(16, 68, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass) < (0)) __PYX_ERR(16, 68, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ObjClass, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass) < (0)) __PYX_ERR(16, 68, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClass) < (0)) __PYX_ERR(16, 68, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Common = &__pyx_vtable_7setools_9policyrep_Common;
  __pyx_vtable_7setools_9policyrep_Common.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_Common.factory = (struct __pyx_obj_7setools_9policyrep_Common *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, common_datum_t *))__pyx_f_7setools_9policyrep_6Common_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Common = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Common_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Common)) __PYX_ERR(16, 14, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Common_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Common) < (0)) __PYX_ERR(16, 14, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Common = &__pyx_type_7setools_9policyrep_Common;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Common->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Common) < (0)) __PYX_ERR(16, 14, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Common);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Common->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Common->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Common->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Common, __pyx_vtabptr_7setools_9policyrep_Common) < (0)) __PYX_ERR(16, 14, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Common) < (0)) __PYX_ERR(16, 14, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Common, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Common) < (0)) __PYX_ERR(16, 14, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Common) < (0)) __PYX_ERR(16, 14, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Sensitivity = &__pyx_vtable_7setools_9policyrep_Sensitivity;
  __pyx_vtable_7setools_9policyrep_Sensitivity.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_Sensitivity.factory = (struct __pyx_obj_7setools_9policyrep_Sensitivity *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *))__pyx_f_7setools_9policyrep_11Sensitivity_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Sensitivity_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity)) __PYX_ERR(3, 85, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Sensitivity_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity) < (0)) __PYX_ERR(3, 85, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity = &__pyx_type_7setools_9policyrep_Sensitivity;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity) < (0)) __PYX_ERR(3, 85, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity, __pyx_vtabptr_7setools_9policyrep_Sensitivity) < (0)) __PYX_ERR(3, 85, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity) < (0)) __PYX_ERR(3, 85, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Sensitivity, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity) < (0)) __PYX_ERR(3, 85, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Sensitivity) < (0)) __PYX_ERR(3, 85, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Category = &__pyx_vtable_7setools_9policyrep_Category;
  __pyx_vtable_7setools_9policyrep_Category.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_Category.factory = (struct __pyx_obj_7setools_9policyrep_Category *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cat_datum_t *))__pyx_f_7setools_9policyrep_8Category_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Category = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Category_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Category)) __PYX_ERR(3, 31, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Category_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Category) < (0)) __PYX_ERR(3, 31, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Category = &__pyx_type_7setools_9policyrep_Category;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Category->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Category) < (0)) __PYX_ERR(3, 31, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Category);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Category->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Category->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Category->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Category, __pyx_vtabptr_7setools_9policyrep_Category) < (0)) __PYX_ERR(3, 31, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Category) < (0)) __PYX_ERR(3, 31, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Category, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Category) < (0)) __PYX_ERR(3, 31, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Category) < (0)) __PYX_ERR(3, 31, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Boolean = &__pyx_vtable_7setools_9policyrep_Boolean;
  __pyx_vtable_7setools_9policyrep_Boolean.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_Boolean.factory = (struct __pyx_obj_7setools_9policyrep_Boolean *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_bool_datum_t *))__pyx_f_7setools_9policyrep_7Boolean_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Boolean_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean)) __PYX_ERR(6, 22, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Boolean_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean) < (0)) __PYX_ERR(6, 22, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean = &__pyx_type_7setools_9policyrep_Boolean;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Boolean->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean) < (0)) __PYX_ERR(6, 22, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean, __pyx_vtabptr_7setools_9policyrep_Boolean) < (0)) __PYX_ERR(6, 22, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean) < (0)) __PYX_ERR(6, 22, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Boolean, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean) < (0)) __PYX_ERR(6, 22, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Boolean) < (0)) __PYX_ERR(6, 22, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Ocontext = &__pyx_vtable_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Ocontext.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Ocontext_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext)) __PYX_ERR(4, 88, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Ocontext_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext) < (0)) __PYX_ERR(4, 88, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext = &__pyx_type_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext) < (0)) __PYX_ERR(4, 88, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext, __pyx_vtabptr_7setools_9policyrep_Ocontext) < (0)) __PYX_ERR(4, 88, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext) < (0)) __PYX_ERR(4, 88, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Ocontext, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext) < (0)) __PYX_ERR(4, 88, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ocontext) < (0)) __PYX_ERR(4, 88, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Portcon = &__pyx_vtable_7setools_9policyrep_Portcon;
  __pyx_vtable_7setools_9policyrep_Portcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Portcon.factory = (struct __pyx_obj_7setools_9policyrep_Portcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_7Portcon_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Portcon_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon)) __PYX_ERR(15, 297, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Portcon_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon) < (0)) __PYX_ERR(15, 297, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon = &__pyx_type_7setools_9policyrep_Portcon;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Portcon->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon) < (0)) __PYX_ERR(15, 297, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon, __pyx_vtabptr_7setools_9policyrep_Portcon) < (0)) __PYX_ERR(15, 297, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon) < (0)) __PYX_ERR(15, 297, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Portcon, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon) < (0)) __PYX_ERR(15, 297, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Portcon) < (0)) __PYX_ERR(15, 297, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Nodecon = &__pyx_vtable_7setools_9policyrep_Nodecon;
  __pyx_vtable_7setools_9policyrep_Nodecon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Nodecon.factory = (struct __pyx_obj_7setools_9policyrep_Nodecon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *))__pyx_f_7setools_9policyrep_7Nodecon_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Nodecon_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon)) __PYX_ERR(15, 192, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Nodecon_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon) < (0)) __PYX_ERR(15, 192, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon = &__pyx_type_7setools_9policyrep_Nodecon;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Nodecon->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon) < (0)) __PYX_ERR(15, 192, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon, __pyx_vtabptr_7setools_9policyrep_Nodecon) < (0)) __PYX_ERR(15, 192, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon) < (0)) __PYX_ERR(15, 192, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Nodecon, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon) < (0)) __PYX_ERR(15, 192, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Nodecon) < (0)) __PYX_ERR(15, 192, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Netifcon = &__pyx_vtable_7setools_9policyrep_Netifcon;
  __pyx_vtable_7setools_9policyrep_Netifcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Netifcon.factory = (struct __pyx_obj_7setools_9policyrep_Netifcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_8Netifcon_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Netifcon_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon)) __PYX_ERR(15, 154, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Netifcon_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon) < (0)) __PYX_ERR(15, 154, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon = &__pyx_type_7setools_9policyrep_Netifcon;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Netifcon->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon) < (0)) __PYX_ERR(15, 154, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon, __pyx_vtabptr_7setools_9policyrep_Netifcon) < (0)) __PYX_ERR(15, 154, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon) < (0)) __PYX_ERR(15, 154, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Netifcon, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon) < (0)) __PYX_ERR(15, 154, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Netifcon) < (0)) __PYX_ERR(15, 154, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Ibpkeycon = &__pyx_vtable_7setools_9policyrep_Ibpkeycon;
  __pyx_vtable_7setools_9policyrep_Ibpkeycon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Ibpkeycon.factory = (struct __pyx_obj_7setools_9policyrep_Ibpkeycon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_9Ibpkeycon_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Ibpkeycon_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon)) __PYX_ERR(15, 96, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Ibpkeycon_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon) < (0)) __PYX_ERR(15, 96, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon = &__pyx_type_7setools_9policyrep_Ibpkeycon;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibpkeycon->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon) < (0)) __PYX_ERR(15, 96, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon, __pyx_vtabptr_7setools_9policyrep_Ibpkeycon) < (0)) __PYX_ERR(15, 96, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon) < (0)) __PYX_ERR(15, 96, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Ibpkeycon, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon) < (0)) __PYX_ERR(15, 96, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibpkeycon) < (0)) __PYX_ERR(15, 96, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Ibendportcon = &__pyx_vtable_7setools_9policyrep_Ibendportcon;
  __pyx_vtable_7setools_9policyrep_Ibendportcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Ibendportcon.factory = (struct __pyx_obj_7setools_9policyrep_Ibendportcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_12Ibendportcon_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Ibendportcon_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon)) __PYX_ERR(15, 66, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Ibendportcon_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon) < (0)) __PYX_ERR(15, 66, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon = &__pyx_type_7setools_9policyrep_Ibendportcon;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibendportcon->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon) < (0)) __PYX_ERR(15, 66, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon, __pyx_vtabptr_7setools_9policyrep_Ibendportcon) < (0)) __PYX_ERR(15, 66, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon) < (0)) __PYX_ERR(15, 66, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Ibendportcon, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon) < (0)) __PYX_ERR(15, 66, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ibendportcon) < (0)) __PYX_ERR(15, 66, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_InitialSID = &__pyx_vtable_7setools_9policyrep_InitialSID;
  __pyx_vtable_7setools_9policyrep_InitialSID.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_InitialSID.factory = (struct __pyx_obj_7setools_9policyrep_InitialSID *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct ocontext *))__pyx_f_7setools_9policyrep_10InitialSID_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_InitialSID_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID)) __PYX_ERR(13, 24, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_InitialSID_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID) < (0)) __PYX_ERR(13, 24, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID = &__pyx_type_7setools_9policyrep_InitialSID;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_InitialSID->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID) < (0)) __PYX_ERR(13, 24, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID, __pyx_vtabptr_7setools_9policyrep_InitialSID) < (0)) __PYX_ERR(13, 24, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID) < (0)) __PYX_ERR(13, 24, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_InitialSID, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID) < (0)) __PYX_ERR(13, 24, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSID) < (0)) __PYX_ERR(13, 24, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Genfscon = &__pyx_vtable_7setools_9policyrep_Genfscon;
  __pyx_vtable_7setools_9policyrep_Genfscon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Genfscon.factory = (struct __pyx_obj_7setools_9policyrep_Genfscon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *))__pyx_f_7setools_9policyrep_8Genfscon_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Genfscon_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon)) __PYX_ERR(12, 91, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Genfscon_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon) < (0)) __PYX_ERR(12, 91, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon = &__pyx_type_7setools_9policyrep_Genfscon;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Genfscon->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon) < (0)) __PYX_ERR(12, 91, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon, __pyx_vtabptr_7setools_9policyrep_Genfscon) < (0)) __PYX_ERR(12, 91, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon) < (0)) __PYX_ERR(12, 91, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Genfscon, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon) < (0)) __PYX_ERR(12, 91, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Genfscon) < (0)) __PYX_ERR(12, 91, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_FSUse = &__pyx_vtable_7setools_9policyrep_FSUse;
  __pyx_vtable_7setools_9policyrep_FSUse.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_FSUse.factory = (struct __pyx_obj_7setools_9policyrep_FSUse *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_5FSUse_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_FSUse_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse)) __PYX_ERR(12, 21, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_FSUse_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse) < (0)) __PYX_ERR(12, 21, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse = &__pyx_type_7setools_9policyrep_FSUse;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FSUse->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse) < (0)) __PYX_ERR(12, 21, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse, __pyx_vtabptr_7setools_9policyrep_FSUse) < (0)) __PYX_ERR(12, 21, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse) < (0)) __PYX_ERR(12, 21, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FSUse, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse) < (0)) __PYX_ERR(12, 21, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUse) < (0)) __PYX_ERR(12, 21, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_PolicyIterator_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyIterator)) __PYX_ERR(4, 98, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_PolicyIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyIterator) < (0)) __PYX_ERR(4, 98, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyIterator = &__pyx_type_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyIterator) < (0)) __PYX_ERR(4, 98, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PolicyIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyIterator) < (0)) __PYX_ERR(4, 98, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyIterator) < (0)) __PYX_ERR(4, 98, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_PermissionVectorIterator = &__pyx_vtable_7setools_9policyrep_PermissionVectorIterator;
  __pyx_vtable_7setools_9policyrep_PermissionVectorIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, uint32_t))__pyx_f_7setools_9policyrep_24PermissionVectorIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_PermissionVectorIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator)) __PYX_ERR(16, 247, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_PermissionVectorIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator) < (0)) __PYX_ERR(16, 247, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator = &__pyx_type_7setools_9policyrep_PermissionVectorIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator) < (0)) __PYX_ERR(16, 247, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator, __pyx_vtabptr_7setools_9policyrep_PermissionVectorIterator) < (0)) __PYX_ERR(16, 247, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator) < (0)) __PYX_ERR(16, 247, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PermissionVectorIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator) < (0)) __PYX_ERR(16, 247, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator) < (0)) __PYX_ERR(16, 247, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_ConstraintExprIterator = &__pyx_vtable_7setools_9policyrep_ConstraintExprIterator;
  __pyx_vtable_7setools_9policyrep_ConstraintExprIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *))__pyx_f_7setools_9policyrep_22ConstraintExprIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_ConstraintExprIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator)) __PYX_ERR(2, 488, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_ConstraintExprIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator) < (0)) __PYX_ERR(2, 488, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator = &__pyx_type_7setools_9policyrep_ConstraintExprIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator) < (0)) __PYX_ERR(2, 488, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator, __pyx_vtabptr_7setools_9policyrep_ConstraintExprIterator) < (0)) __PYX_ERR(2, 488, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator) < (0)) __PYX_ERR(2, 488, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ConstraintExprIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator) < (0)) __PYX_ERR(2, 488, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator) < (0)) __PYX_ERR(2, 488, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_ConstraintIterator = &__pyx_vtable_7setools_9policyrep_ConstraintIterator;
  __pyx_vtable_7setools_9policyrep_ConstraintIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *))__pyx_f_7setools_9policyrep_18ConstraintIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_ConstraintIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator)) __PYX_ERR(2, 421, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_ConstraintIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator) < (0)) __PYX_ERR(2, 421, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator = &__pyx_type_7setools_9policyrep_ConstraintIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator) < (0)) __PYX_ERR(2, 421, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator, __pyx_vtabptr_7setools_9policyrep_ConstraintIterator) < (0)) __PYX_ERR(2, 421, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator) < (0)) __PYX_ERR(2, 421, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ConstraintIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator) < (0)) __PYX_ERR(2, 421, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConstraintIterator) < (0)) __PYX_ERR(2, 421, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_ValidatetransIterator = &__pyx_vtable_7setools_9policyrep_ValidatetransIterator;
  __pyx_vtable_7setools_9policyrep_ValidatetransIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_ConstraintIterator;
  __pyx_vtable_7setools_9policyrep_ValidatetransIterator.__pyx_base.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *))__pyx_f_7setools_9policyrep_21ValidatetransIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_ValidatetransIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator)) __PYX_ERR(2, 465, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_ValidatetransIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator) < (0)) __PYX_ERR(2, 465, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator = &__pyx_type_7setools_9policyrep_ValidatetransIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ValidatetransIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator) < (0)) __PYX_ERR(2, 465, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator, __pyx_vtabptr_7setools_9policyrep_ValidatetransIterator) < (0)) __PYX_ERR(2, 465, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator) < (0)) __PYX_ERR(2, 465, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ValidatetransIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator) < (0)) __PYX_ERR(2, 465, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ValidatetransIterator) < (0)) __PYX_ERR(2, 465, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_ConditionalExprIterator = &__pyx_vtable_7setools_9policyrep_ConditionalExprIterator;
  __pyx_vtable_7setools_9policyrep_ConditionalExprIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_expr_t *))__pyx_f_7setools_9policyrep_23ConditionalExprIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_ConditionalExprIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator)) __PYX_ERR(6, 321, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_ConditionalExprIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator) < (0)) __PYX_ERR(6, 321, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator = &__pyx_type_7setools_9policyrep_ConditionalExprIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator) < (0)) __PYX_ERR(6, 321, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator, __pyx_vtabptr_7setools_9policyrep_ConditionalExprIterator) < (0)) __PYX_ERR(6, 321, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator) < (0)) __PYX_ERR(6, 321, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ConditionalExprIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator) < (0)) __PYX_ERR(6, 321, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator) < (0)) __PYX_ERR(6, 321, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_ConditionalIterator = &__pyx_vtable_7setools_9policyrep_ConditionalIterator;
  __pyx_vtable_7setools_9policyrep_ConditionalIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_node_t *))__pyx_f_7setools_9policyrep_19ConditionalIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_ConditionalIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator)) __PYX_ERR(6, 279, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_ConditionalIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator) < (0)) __PYX_ERR(6, 279, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator = &__pyx_type_7setools_9policyrep_ConditionalIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator) < (0)) __PYX_ERR(6, 279, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator, __pyx_vtabptr_7setools_9policyrep_ConditionalIterator) < (0)) __PYX_ERR(6, 279, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator) < (0)) __PYX_ERR(6, 279, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ConditionalIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator) < (0)) __PYX_ERR(6, 279, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalIterator) < (0)) __PYX_ERR(6, 279, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_EbitmapIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_EbitmapIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_EbitmapIterator)) __PYX_ERR(4, 118, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_EbitmapIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_EbitmapIterator) < (0)) __PYX_ERR(4, 118, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_EbitmapIterator = &__pyx_type_7setools_9policyrep_EbitmapIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_EbitmapIterator) < (0)) __PYX_ERR(4, 118, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_EbitmapIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_EbitmapIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_EbitmapIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_EbitmapIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EbitmapIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_EbitmapIterator) < (0)) __PYX_ERR(4, 118, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_EbitmapIterator) < (0)) __PYX_ERR(4, 118, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_CategoryEbitmapIterator = &__pyx_vtable_7setools_9policyrep_CategoryEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_CategoryEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_23CategoryEbitmapIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_CategoryEbitmapIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator)) __PYX_ERR(3, 664, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_CategoryEbitmapIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator) < (0)) __PYX_ERR(3, 664, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator = &__pyx_type_7setools_9policyrep_CategoryEbitmapIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator) < (0)) __PYX_ERR(3, 664, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator, __pyx_vtabptr_7setools_9policyrep_CategoryEbitmapIterator) < (0)) __PYX_ERR(3, 664, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator) < (0)) __PYX_ERR(3, 664, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CategoryEbitmapIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator) < (0)) __PYX_ERR(3, 664, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator) < (0)) __PYX_ERR(3, 664, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_HashtabIterator = &__pyx_vtable_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_HashtabIterator._next_bucket = (void (*)(struct __pyx_obj_7setools_9policyrep_HashtabIterator *))__pyx_f_7setools_9policyrep_15HashtabIterator__next_bucket;
  __pyx_vtable_7setools_9policyrep_HashtabIterator._next_node = (void (*)(struct __pyx_obj_7setools_9policyrep_HashtabIterator *))__pyx_f_7setools_9policyrep_15HashtabIterator__next_node;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_HashtabIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator)) __PYX_ERR(4, 175, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_HashtabIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator) < (0)) __PYX_ERR(4, 175, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator = &__pyx_type_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator) < (0)) __PYX_ERR(4, 175, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator, __pyx_vtabptr_7setools_9policyrep_HashtabIterator) < (0)) __PYX_ERR(4, 175, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator) < (0)) __PYX_ERR(4, 175, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HashtabIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator) < (0)) __PYX_ERR(4, 175, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_HashtabIterator) < (0)) __PYX_ERR(4, 175, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_ObjClassHashtabIterator = &__pyx_vtable_7setools_9policyrep_ObjClassHashtabIterator;
  __pyx_vtable_7setools_9policyrep_ObjClassHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_ObjClassHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_23ObjClassHashtabIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_ObjClassHashtabIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator)) __PYX_ERR(16, 229, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_ObjClassHashtabIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator) < (0)) __PYX_ERR(16, 229, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator = &__pyx_type_7setools_9policyrep_ObjClassHashtabIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator) < (0)) __PYX_ERR(16, 229, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator, __pyx_vtabptr_7setools_9policyrep_ObjClassHashtabIterator) < (0)) __PYX_ERR(16, 229, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator) < (0)) __PYX_ERR(16, 229, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ObjClassHashtabIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator) < (0)) __PYX_ERR(16, 229, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator) < (0)) __PYX_ERR(16, 229, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_CommonHashtabIterator = &__pyx_vtable_7setools_9policyrep_CommonHashtabIterator;
  __pyx_vtable_7setools_9policyrep_CommonHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_CommonHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_21CommonHashtabIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_CommonHashtabIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator)) __PYX_ERR(16, 211, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_CommonHashtabIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator) < (0)) __PYX_ERR(16, 211, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator = &__pyx_type_7setools_9policyrep_CommonHashtabIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator) < (0)) __PYX_ERR(16, 211, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator, __pyx_vtabptr_7setools_9policyrep_CommonHashtabIterator) < (0)) __PYX_ERR(16, 211, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator) < (0)) __PYX_ERR(16, 211, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CommonHashtabIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator) < (0)) __PYX_ERR(16, 211, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_CommonHashtabIterator) < (0)) __PYX_ERR(16, 211, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_MLSRuleIterator = &__pyx_vtable_7setools_9policyrep_MLSRuleIterator;
  __pyx_vtable_7setools_9policyrep_MLSRuleIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_MLSRuleIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_15MLSRuleIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_MLSRuleIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator)) __PYX_ERR(14, 76, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_MLSRuleIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator) < (0)) __PYX_ERR(14, 76, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator = &__pyx_type_7setools_9policyrep_MLSRuleIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_MLSRuleIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator) < (0)) __PYX_ERR(14, 76, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator, __pyx_vtabptr_7setools_9policyrep_MLSRuleIterator) < (0)) __PYX_ERR(14, 76, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator) < (0)) __PYX_ERR(14, 76, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MLSRuleIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator) < (0)) __PYX_ERR(14, 76, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRuleIterator) < (0)) __PYX_ERR(14, 76, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_LevelDeclHashtabIterator = &__pyx_vtable_7setools_9policyrep_LevelDeclHashtabIterator;
  __pyx_vtable_7setools_9policyrep_LevelDeclHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_LevelDeclHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_24LevelDeclHashtabIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator)) __PYX_ERR(3, 604, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator) < (0)) __PYX_ERR(3, 604, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator = &__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator) < (0)) __PYX_ERR(3, 604, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator, __pyx_vtabptr_7setools_9policyrep_LevelDeclHashtabIterator) < (0)) __PYX_ERR(3, 604, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator) < (0)) __PYX_ERR(3, 604, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LevelDeclHashtabIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator) < (0)) __PYX_ERR(3, 604, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator) < (0)) __PYX_ERR(3, 604, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_SensitivityHashtabIterator = &__pyx_vtable_7setools_9policyrep_SensitivityHashtabIterator;
  __pyx_vtable_7setools_9policyrep_SensitivityHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_SensitivityHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_26SensitivityHashtabIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_SensitivityHashtabIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator)) __PYX_ERR(3, 547, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_SensitivityHashtabIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator) < (0)) __PYX_ERR(3, 547, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator = &__pyx_type_7setools_9policyrep_SensitivityHashtabIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator) < (0)) __PYX_ERR(3, 547, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator, __pyx_vtabptr_7setools_9policyrep_SensitivityHashtabIterator) < (0)) __PYX_ERR(3, 547, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator) < (0)) __PYX_ERR(3, 547, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SensitivityHashtabIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator) < (0)) __PYX_ERR(3, 547, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator) < (0)) __PYX_ERR(3, 547, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_CategoryHashtabIterator = &__pyx_vtable_7setools_9policyrep_CategoryHashtabIterator;
  __pyx_vtable_7setools_9policyrep_CategoryHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_CategoryHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_23CategoryHashtabIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_CategoryHashtabIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator)) __PYX_ERR(3, 490, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_CategoryHashtabIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator) < (0)) __PYX_ERR(3, 490, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator = &__pyx_type_7setools_9policyrep_CategoryHashtabIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator) < (0)) __PYX_ERR(3, 490, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator, __pyx_vtabptr_7setools_9policyrep_CategoryHashtabIterator) < (0)) __PYX_ERR(3, 490, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator) < (0)) __PYX_ERR(3, 490, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CategoryHashtabIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator) < (0)) __PYX_ERR(3, 490, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator) < (0)) __PYX_ERR(3, 490, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_TypeboundsIterator = &__pyx_vtable_7setools_9policyrep_TypeboundsIterator;
  __pyx_vtable_7setools_9policyrep_TypeboundsIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_TypeboundsIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_18TypeboundsIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_TypeboundsIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator)) __PYX_ERR(8, 57, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_TypeboundsIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator) < (0)) __PYX_ERR(8, 57, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator = &__pyx_type_7setools_9policyrep_TypeboundsIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeboundsIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator) < (0)) __PYX_ERR(8, 57, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator, __pyx_vtabptr_7setools_9policyrep_TypeboundsIterator) < (0)) __PYX_ERR(8, 57, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator) < (0)) __PYX_ERR(8, 57, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TypeboundsIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator) < (0)) __PYX_ERR(8, 57, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeboundsIterator) < (0)) __PYX_ERR(8, 57, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_BooleanHashtabIterator = &__pyx_vtable_7setools_9policyrep_BooleanHashtabIterator;
  __pyx_vtable_7setools_9policyrep_BooleanHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_BooleanHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_22BooleanHashtabIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_BooleanHashtabIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator)) __PYX_ERR(6, 261, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_BooleanHashtabIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator) < (0)) __PYX_ERR(6, 261, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator = &__pyx_type_7setools_9policyrep_BooleanHashtabIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator) < (0)) __PYX_ERR(6, 261, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator, __pyx_vtabptr_7setools_9policyrep_BooleanHashtabIterator) < (0)) __PYX_ERR(6, 261, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator) < (0)) __PYX_ERR(6, 261, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BooleanHashtabIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator) < (0)) __PYX_ERR(6, 261, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator) < (0)) __PYX_ERR(6, 261, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_OcontextIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_OcontextIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_OcontextIterator)) __PYX_ERR(4, 241, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_OcontextIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_OcontextIterator) < (0)) __PYX_ERR(4, 241, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_OcontextIterator = &__pyx_type_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_OcontextIterator) < (0)) __PYX_ERR(4, 241, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_OcontextIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_OcontextIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_OcontextIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_OcontextIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_OcontextIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_OcontextIterator) < (0)) __PYX_ERR(4, 241, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_OcontextIterator) < (0)) __PYX_ERR(4, 241, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_PortconIterator = &__pyx_vtable_7setools_9policyrep_PortconIterator;
  __pyx_vtable_7setools_9policyrep_PortconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_15PortconIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_PortconIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator)) __PYX_ERR(15, 401, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_PortconIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator) < (0)) __PYX_ERR(15, 401, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator = &__pyx_type_7setools_9policyrep_PortconIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PortconIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator) < (0)) __PYX_ERR(15, 401, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator, __pyx_vtabptr_7setools_9policyrep_PortconIterator) < (0)) __PYX_ERR(15, 401, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator) < (0)) __PYX_ERR(15, 401, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PortconIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator) < (0)) __PYX_ERR(15, 401, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PortconIterator) < (0)) __PYX_ERR(15, 401, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_NodeconIterator = &__pyx_vtable_7setools_9policyrep_NodeconIterator;
  __pyx_vtable_7setools_9policyrep_NodeconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *))__pyx_f_7setools_9policyrep_15NodeconIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_NodeconIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator)) __PYX_ERR(15, 381, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_NodeconIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator) < (0)) __PYX_ERR(15, 381, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator = &__pyx_type_7setools_9policyrep_NodeconIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_NodeconIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator) < (0)) __PYX_ERR(15, 381, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator, __pyx_vtabptr_7setools_9policyrep_NodeconIterator) < (0)) __PYX_ERR(15, 381, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator) < (0)) __PYX_ERR(15, 381, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NodeconIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator) < (0)) __PYX_ERR(15, 381, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_NodeconIterator) < (0)) __PYX_ERR(15, 381, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_NetifconIterator = &__pyx_vtable_7setools_9policyrep_NetifconIterator;
  __pyx_vtable_7setools_9policyrep_NetifconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_16NetifconIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_NetifconIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator)) __PYX_ERR(15, 364, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_NetifconIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator) < (0)) __PYX_ERR(15, 364, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator = &__pyx_type_7setools_9policyrep_NetifconIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_NetifconIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator) < (0)) __PYX_ERR(15, 364, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator, __pyx_vtabptr_7setools_9policyrep_NetifconIterator) < (0)) __PYX_ERR(15, 364, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator) < (0)) __PYX_ERR(15, 364, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NetifconIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator) < (0)) __PYX_ERR(15, 364, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_NetifconIterator) < (0)) __PYX_ERR(15, 364, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_IbpkeyconIterator = &__pyx_vtable_7setools_9policyrep_IbpkeyconIterator;
  __pyx_vtable_7setools_9policyrep_IbpkeyconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_17IbpkeyconIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_IbpkeyconIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator)) __PYX_ERR(15, 347, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_IbpkeyconIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator) < (0)) __PYX_ERR(15, 347, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator = &__pyx_type_7setools_9policyrep_IbpkeyconIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator) < (0)) __PYX_ERR(15, 347, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator, __pyx_vtabptr_7setools_9policyrep_IbpkeyconIterator) < (0)) __PYX_ERR(15, 347, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator) < (0)) __PYX_ERR(15, 347, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IbpkeyconIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator) < (0)) __PYX_ERR(15, 347, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbpkeyconIterator) < (0)) __PYX_ERR(15, 347, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_IbendportconIterator = &__pyx_vtable_7setools_9policyrep_IbendportconIterator;
  __pyx_vtable_7setools_9policyrep_IbendportconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_20IbendportconIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_IbendportconIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator)) __PYX_ERR(15, 330, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_IbendportconIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator) < (0)) __PYX_ERR(15, 330, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator = &__pyx_type_7setools_9policyrep_IbendportconIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IbendportconIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator) < (0)) __PYX_ERR(15, 330, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator, __pyx_vtabptr_7setools_9policyrep_IbendportconIterator) < (0)) __PYX_ERR(15, 330, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator) < (0)) __PYX_ERR(15, 330, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IbendportconIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator) < (0)) __PYX_ERR(15, 330, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_IbendportconIterator) < (0)) __PYX_ERR(15, 330, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_InitialSIDIterator = &__pyx_vtable_7setools_9policyrep_InitialSIDIterator;
  __pyx_vtable_7setools_9policyrep_InitialSIDIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_18InitialSIDIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_InitialSIDIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator)) __PYX_ERR(13, 56, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_InitialSIDIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator) < (0)) __PYX_ERR(13, 56, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator = &__pyx_type_7setools_9policyrep_InitialSIDIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_InitialSIDIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator) < (0)) __PYX_ERR(13, 56, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator, __pyx_vtabptr_7setools_9policyrep_InitialSIDIterator) < (0)) __PYX_ERR(13, 56, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator) < (0)) __PYX_ERR(13, 56, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_InitialSIDIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator) < (0)) __PYX_ERR(13, 56, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_InitialSIDIterator) < (0)) __PYX_ERR(13, 56, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_GenfsconOcontextIterator = &__pyx_vtable_7setools_9policyrep_GenfsconOcontextIterator;
  __pyx_vtable_7setools_9policyrep_GenfsconOcontextIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *))__pyx_f_7setools_9policyrep_24GenfsconOcontextIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_GenfsconOcontextIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator)) __PYX_ERR(12, 210, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_GenfsconOcontextIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator) < (0)) __PYX_ERR(12, 210, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator = &__pyx_type_7setools_9policyrep_GenfsconOcontextIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator) < (0)) __PYX_ERR(12, 210, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator, __pyx_vtabptr_7setools_9policyrep_GenfsconOcontextIterator) < (0)) __PYX_ERR(12, 210, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator) < (0)) __PYX_ERR(12, 210, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_GenfsconOcontextIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator) < (0)) __PYX_ERR(12, 210, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator) < (0)) __PYX_ERR(12, 210, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_FSUseIterator = &__pyx_vtable_7setools_9policyrep_FSUseIterator;
  __pyx_vtable_7setools_9policyrep_FSUseIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_13FSUseIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_FSUseIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator)) __PYX_ERR(12, 142, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_FSUseIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator) < (0)) __PYX_ERR(12, 142, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator = &__pyx_type_7setools_9policyrep_FSUseIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FSUseIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator) < (0)) __PYX_ERR(12, 142, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator, __pyx_vtabptr_7setools_9policyrep_FSUseIterator) < (0)) __PYX_ERR(12, 142, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator) < (0)) __PYX_ERR(12, 142, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FSUseIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator) < (0)) __PYX_ERR(12, 142, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_FSUseIterator) < (0)) __PYX_ERR(12, 142, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_PolicyCapability = &__pyx_vtable_7setools_9policyrep_PolicyCapability;
  __pyx_vtable_7setools_9policyrep_PolicyCapability.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_PolicyCapability.factory = (struct __pyx_obj_7setools_9policyrep_PolicyCapability *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_16PolicyCapability_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_PolicyCapability_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability)) __PYX_ERR(17, 8, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_PolicyCapability_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability) < (0)) __PYX_ERR(17, 8, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability = &__pyx_type_7setools_9policyrep_PolicyCapability;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyCapability->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability) < (0)) __PYX_ERR(17, 8, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability, __pyx_vtabptr_7setools_9policyrep_PolicyCapability) < (0)) __PYX_ERR(17, 8, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability) < (0)) __PYX_ERR(17, 8, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PolicyCapability, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability) < (0)) __PYX_ERR(17, 8, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapability) < (0)) __PYX_ERR(17, 8, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_PolicyCapabilityIterator = &__pyx_vtable_7setools_9policyrep_PolicyCapabilityIterator;
  __pyx_vtable_7setools_9policyrep_PolicyCapabilityIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_24PolicyCapabilityIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_PolicyCapabilityIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator)) __PYX_ERR(17, 34, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_PolicyCapabilityIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator) < (0)) __PYX_ERR(17, 34, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator = &__pyx_type_7setools_9policyrep_PolicyCapabilityIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator) < (0)) __PYX_ERR(17, 34, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator, __pyx_vtabptr_7setools_9policyrep_PolicyCapabilityIterator) < (0)) __PYX_ERR(17, 34, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator) < (0)) __PYX_ERR(17, 34, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PolicyCapabilityIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator) < (0)) __PYX_ERR(17, 34, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator) < (0)) __PYX_ERR(17, 34, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_RoleAllowIterator = &__pyx_vtable_7setools_9policyrep_RoleAllowIterator;
  __pyx_vtable_7setools_9policyrep_RoleAllowIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_allow_t *))__pyx_f_7setools_9policyrep_17RoleAllowIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_RoleAllowIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator)) __PYX_ERR(18, 131, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_RoleAllowIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator) < (0)) __PYX_ERR(18, 131, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator = &__pyx_type_7setools_9policyrep_RoleAllowIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllowIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator) < (0)) __PYX_ERR(18, 131, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator, __pyx_vtabptr_7setools_9policyrep_RoleAllowIterator) < (0)) __PYX_ERR(18, 131, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator) < (0)) __PYX_ERR(18, 131, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RoleAllowIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator) < (0)) __PYX_ERR(18, 131, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllowIterator) < (0)) __PYX_ERR(18, 131, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_RoleTransitionIterator = &__pyx_vtable_7setools_9policyrep_RoleTransitionIterator;
  __pyx_vtable_7setools_9policyrep_RoleTransitionIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_trans_t *))__pyx_f_7setools_9policyrep_22RoleTransitionIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_RoleTransitionIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator)) __PYX_ERR(18, 173, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_RoleTransitionIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator) < (0)) __PYX_ERR(18, 173, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator = &__pyx_type_7setools_9policyrep_RoleTransitionIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator) < (0)) __PYX_ERR(18, 173, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator, __pyx_vtabptr_7setools_9policyrep_RoleTransitionIterator) < (0)) __PYX_ERR(18, 173, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator) < (0)) __PYX_ERR(18, 173, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RoleTransitionIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator) < (0)) __PYX_ERR(18, 173, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator) < (0)) __PYX_ERR(18, 173, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Role = &__pyx_vtable_7setools_9policyrep_Role;
  __pyx_vtable_7setools_9policyrep_Role.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_Role.factory = (struct __pyx_obj_7setools_9policyrep_Role *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_datum_t *))__pyx_f_7setools_9policyrep_4Role_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Role = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Role_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Role)) __PYX_ERR(19, 8, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Role_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Role) < (0)) __PYX_ERR(19, 8, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Role = &__pyx_type_7setools_9policyrep_Role;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Role->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Role) < (0)) __PYX_ERR(19, 8, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Role);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Role->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Role->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Role->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Role, __pyx_vtabptr_7setools_9policyrep_Role) < (0)) __PYX_ERR(19, 8, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Role) < (0)) __PYX_ERR(19, 8, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Role, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Role) < (0)) __PYX_ERR(19, 8, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Role) < (0)) __PYX_ERR(19, 8, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_RoleHashtabIterator = &__pyx_vtable_7setools_9policyrep_RoleHashtabIterator;
  __pyx_vtable_7setools_9policyrep_RoleHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_RoleHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_19RoleHashtabIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_RoleHashtabIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator)) __PYX_ERR(19, 51, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_RoleHashtabIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator) < (0)) __PYX_ERR(19, 51, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator = &__pyx_type_7setools_9policyrep_RoleHashtabIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator) < (0)) __PYX_ERR(19, 51, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator, __pyx_vtabptr_7setools_9policyrep_RoleHashtabIterator) < (0)) __PYX_ERR(19, 51, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator) < (0)) __PYX_ERR(19, 51, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RoleHashtabIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator) < (0)) __PYX_ERR(19, 51, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleHashtabIterator) < (0)) __PYX_ERR(19, 51, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_RoleEbitmapIterator = &__pyx_vtable_7setools_9policyrep_RoleEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_RoleEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_19RoleEbitmapIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_RoleEbitmapIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator)) __PYX_ERR(19, 69, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_RoleEbitmapIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator) < (0)) __PYX_ERR(19, 69, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator = &__pyx_type_7setools_9policyrep_RoleEbitmapIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator) < (0)) __PYX_ERR(19, 69, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator, __pyx_vtabptr_7setools_9policyrep_RoleEbitmapIterator) < (0)) __PYX_ERR(19, 69, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator) < (0)) __PYX_ERR(19, 69, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RoleEbitmapIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator) < (0)) __PYX_ERR(19, 69, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator) < (0)) __PYX_ERR(19, 69, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_PolicyRule = &__pyx_vtable_7setools_9policyrep_PolicyRule;
  __pyx_vtable_7setools_9policyrep_PolicyRule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_PolicyRule_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule)) __PYX_ERR(20, 7, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_PolicyRule_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule) < (0)) __PYX_ERR(20, 7, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule = &__pyx_type_7setools_9policyrep_PolicyRule;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule) < (0)) __PYX_ERR(20, 7, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule, __pyx_vtabptr_7setools_9policyrep_PolicyRule) < (0)) __PYX_ERR(20, 7, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule) < (0)) __PYX_ERR(20, 7, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PolicyRule, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule) < (0)) __PYX_ERR(20, 7, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PolicyRule) < (0)) __PYX_ERR(20, 7, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_RoleTransition = &__pyx_vtable_7setools_9policyrep_RoleTransition;
  __pyx_vtable_7setools_9policyrep_RoleTransition.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyRule;
  __pyx_vtable_7setools_9policyrep_RoleTransition.factory = (struct __pyx_obj_7setools_9policyrep_RoleTransition *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_trans_t *))__pyx_f_7setools_9policyrep_14RoleTransition_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_RoleTransition_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition)) __PYX_ERR(18, 69, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_RoleTransition_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition) < (0)) __PYX_ERR(18, 69, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition = &__pyx_type_7setools_9policyrep_RoleTransition;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransition->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition) < (0)) __PYX_ERR(18, 69, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition, __pyx_vtabptr_7setools_9policyrep_RoleTransition) < (0)) __PYX_ERR(18, 69, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition) < (0)) __PYX_ERR(18, 69, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RoleTransition, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition) < (0)) __PYX_ERR(18, 69, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleTransition) < (0)) __PYX_ERR(18, 69, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_RoleAllow = &__pyx_vtable_7setools_9policyrep_RoleAllow;
  __pyx_vtable_7setools_9policyrep_RoleAllow.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyRule;
  __pyx_vtable_7setools_9policyrep_RoleAllow.factory = (struct __pyx_obj_7setools_9policyrep_RoleAllow *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_allow_t *))__pyx_f_7setools_9policyrep_9RoleAllow_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_RoleAllow_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow)) __PYX_ERR(18, 24, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_RoleAllow_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow) < (0)) __PYX_ERR(18, 24, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow = &__pyx_type_7setools_9policyrep_RoleAllow;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllow->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow) < (0)) __PYX_ERR(18, 24, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow, __pyx_vtabptr_7setools_9policyrep_RoleAllow) < (0)) __PYX_ERR(18, 24, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow) < (0)) __PYX_ERR(18, 24, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RoleAllow, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow) < (0)) __PYX_ERR(18, 24, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_RoleAllow) < (0)) __PYX_ERR(18, 24, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_MLSRule = &__pyx_vtable_7setools_9policyrep_MLSRule;
  __pyx_vtable_7setools_9policyrep_MLSRule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyRule;
  __pyx_vtable_7setools_9policyrep_MLSRule.factory = (struct __pyx_obj_7setools_9policyrep_MLSRule *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, range_trans_t *, mls_range_t *))__pyx_f_7setools_9policyrep_7MLSRule_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_MLSRule_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule)) __PYX_ERR(14, 15, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_MLSRule_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule) < (0)) __PYX_ERR(14, 15, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule = &__pyx_type_7setools_9policyrep_MLSRule;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_MLSRule->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule) < (0)) __PYX_ERR(14, 15, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule, __pyx_vtabptr_7setools_9policyrep_MLSRule) < (0)) __PYX_ERR(14, 15, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule) < (0)) __PYX_ERR(14, 15, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MLSRule, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule) < (0)) __PYX_ERR(14, 15, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_MLSRule) < (0)) __PYX_ERR(14, 15, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_SELinuxPolicy = &__pyx_vtable_7setools_9policyrep_SELinuxPolicy;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.boolean_value_to_datum = (cond_bool_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.boolean_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.category_value_to_datum = (cat_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.category_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.class_value_to_datum = (class_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.class_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.common_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_common_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.level_value_to_datum = (level_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.level_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.role_value_to_datum = (role_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.role_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.type_value_to_datum = (type_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.type_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.user_value_to_datum = (user_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.user_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._load_policy = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_policy;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._load_running_policy = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_running_policy;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._set_permissive_flags = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__set_permissive_flags;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._create_mls_val_to_struct = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__create_mls_val_to_struct;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._load_category_aliases = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_category_aliases;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._load_sensitivity_aliases = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_sensitivity_aliases;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._load_type_aliases = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_type_aliases;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._rebuild_attrs_from_map = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__rebuild_attrs_from_map;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._synthesize_attrs = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__synthesize_attrs;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._cache_constraint_counts = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_constraint_counts;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._cache_terule_counts = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_terule_counts;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_SELinuxPolicy_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy)) __PYX_ERR(5, 26, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_SELinuxPolicy_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy) < (0)) __PYX_ERR(5, 26, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy = &__pyx_type_7setools_9policyrep_SELinuxPolicy;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy) < (0)) __PYX_ERR(5, 26, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_vtabptr_7setools_9policyrep_SELinuxPolicy) < (0)) __PYX_ERR(5, 26, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy) < (0)) __PYX_ERR(5, 26, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_2, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy) < (0)) __PYX_ERR(5, 26, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy->tp_weaklistoffset = offsetof(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy, __weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_SELinuxPolicy) < (0)) __PYX_ERR(5, 26, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_BaseTERule = &__pyx_vtable_7setools_9policyrep_BaseTERule;
  __pyx_vtable_7setools_9policyrep_BaseTERule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyRule;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_BaseTERule_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule)) __PYX_ERR(21, 34, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_BaseTERule_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule) < (0)) __PYX_ERR(21, 34, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule = &__pyx_type_7setools_9policyrep_BaseTERule;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule) < (0)) __PYX_ERR(21, 34, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule, __pyx_vtabptr_7setools_9policyrep_BaseTERule) < (0)) __PYX_ERR(21, 34, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule) < (0)) __PYX_ERR(21, 34, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BaseTERule, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule) < (0)) __PYX_ERR(21, 34, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseTERule) < (0)) __PYX_ERR(21, 34, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_AVRule = &__pyx_vtable_7setools_9policyrep_AVRule;
  __pyx_vtable_7setools_9policyrep_AVRule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseTERule;
  __pyx_vtable_7setools_9policyrep_AVRule.factory = (struct __pyx_obj_7setools_9policyrep_AVRule *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_6AVRule_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_AVRule_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule)) __PYX_ERR(21, 115, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_AVRule_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule) < (0)) __PYX_ERR(21, 115, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule = &__pyx_type_7setools_9policyrep_AVRule;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRule->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule) < (0)) __PYX_ERR(21, 115, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule, __pyx_vtabptr_7setools_9policyrep_AVRule) < (0)) __PYX_ERR(21, 115, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule) < (0)) __PYX_ERR(21, 115, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVRule, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule) < (0)) __PYX_ERR(21, 115, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRule) < (0)) __PYX_ERR(21, 115, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)(&PyFrozenSet_Type)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_XpermSet = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_XpermSet_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_XpermSet)) __PYX_ERR(21, 230, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_XpermSet_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_XpermSet) < (0)) __PYX_ERR(21, 230, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_XpermSet = &__pyx_type_7setools_9policyrep_XpermSet;
  #endif
  if (sizeof(struct __pyx_obj_7setools_9policyrep_XpermSet) != sizeof(PySetObject)) {
    if (__Pyx_validate_extern_base((&PyFrozenSet_Type)) < (0)) __PYX_ERR(21, 230, __pyx_L1_error)
  }
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet->tp_base = (&PyFrozenSet_Type);
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_XpermSet) < (0)) __PYX_ERR(21, 230, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_XpermSet);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_XpermSet->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_XpermSet->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_XpermSet->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_XpermSet, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_XpermSet) < (0)) __PYX_ERR(21, 230, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_XpermSet) < (0)) __PYX_ERR(21, 230, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoctlSet = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_IoctlSet_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_IoctlSet)) __PYX_ERR(21, 284, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_IoctlSet_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoctlSet) < (0)) __PYX_ERR(21, 284, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoctlSet = &__pyx_type_7setools_9policyrep_IoctlSet;
  #endif
  if (sizeof(struct __pyx_obj_7setools_9policyrep_IoctlSet) != sizeof(PySetObject)) {
    if (__Pyx_validate_extern_base(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet) < (0)) __PYX_ERR(21, 284, __pyx_L1_error)
  }
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IoctlSet->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IoctlSet) < (0)) __PYX_ERR(21, 284, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_IoctlSet);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_IoctlSet->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoctlSet->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoctlSet->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IoctlSet, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoctlSet) < (0)) __PYX_ERR(21, 284, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoctlSet) < (0)) __PYX_ERR(21, 284, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_AVRuleXperm = &__pyx_vtable_7setools_9policyrep_AVRuleXperm;
  __pyx_vtable_7setools_9policyrep_AVRuleXperm.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseTERule;
  __pyx_vtable_7setools_9policyrep_AVRuleXperm.factory = (struct __pyx_obj_7setools_9policyrep_AVRuleXperm *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_11AVRuleXperm_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_AVRuleXperm_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm)) __PYX_ERR(21, 292, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_AVRuleXperm_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm) < (0)) __PYX_ERR(21, 292, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm = &__pyx_type_7setools_9policyrep_AVRuleXperm;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRuleXperm->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm) < (0)) __PYX_ERR(21, 292, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm, __pyx_vtabptr_7setools_9policyrep_AVRuleXperm) < (0)) __PYX_ERR(21, 292, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm) < (0)) __PYX_ERR(21, 292, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVRuleXperm, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm) < (0)) __PYX_ERR(21, 292, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_AVRuleXperm) < (0)) __PYX_ERR(21, 292, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_TERule = &__pyx_vtable_7setools_9policyrep_TERule;
  __pyx_vtable_7setools_9policyrep_TERule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseTERule;
  __pyx_vtable_7setools_9policyrep_TERule.factory = (struct __pyx_obj_7setools_9policyrep_TERule *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_6TERule_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_TERule_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule)) __PYX_ERR(21, 416, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_TERule_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule) < (0)) __PYX_ERR(21, 416, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule = &__pyx_type_7setools_9policyrep_TERule;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERule->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule) < (0)) __PYX_ERR(21, 416, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule, __pyx_vtabptr_7setools_9policyrep_TERule) < (0)) __PYX_ERR(21, 416, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule) < (0)) __PYX_ERR(21, 416, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TERule, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule) < (0)) __PYX_ERR(21, 416, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERule) < (0)) __PYX_ERR(21, 416, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_FileNameTERule = &__pyx_vtable_7setools_9policyrep_FileNameTERule;
  __pyx_vtable_7setools_9policyrep_FileNameTERule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseTERule;
  __pyx_vtable_7setools_9policyrep_FileNameTERule.factory = (struct __pyx_obj_7setools_9policyrep_FileNameTERule *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, filename_trans_key_t *, struct __pyx_obj_7setools_9policyrep_Type *, size_t))__pyx_f_7setools_9policyrep_14FileNameTERule_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_FileNameTERule_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule)) __PYX_ERR(21, 489, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_FileNameTERule_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule) < (0)) __PYX_ERR(21, 489, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule = &__pyx_type_7setools_9policyrep_FileNameTERule;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERule->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule) < (0)) __PYX_ERR(21, 489, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule, __pyx_vtabptr_7setools_9policyrep_FileNameTERule) < (0)) __PYX_ERR(21, 489, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule) < (0)) __PYX_ERR(21, 489, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FileNameTERule, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule) < (0)) __PYX_ERR(21, 489, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERule) < (0)) __PYX_ERR(21, 489, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_TERuleIterator = &__pyx_vtable_7setools_9policyrep_TERuleIterator;
  __pyx_vtable_7setools_9policyrep_TERuleIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct avtab *))__pyx_f_7setools_9policyrep_14TERuleIterator_factory;
  __pyx_vtable_7setools_9policyrep_TERuleIterator._next_bucket = (void (*)(struct __pyx_obj_7setools_9policyrep_TERuleIterator *))__pyx_f_7setools_9policyrep_14TERuleIterator__next_bucket;
  __pyx_vtable_7setools_9policyrep_TERuleIterator._next_node = (void (*)(struct __pyx_obj_7setools_9policyrep_TERuleIterator *))__pyx_f_7setools_9policyrep_14TERuleIterator__next_node;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_TERuleIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator)) __PYX_ERR(21, 562, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_TERuleIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator) < (0)) __PYX_ERR(21, 562, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator = &__pyx_type_7setools_9policyrep_TERuleIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERuleIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator) < (0)) __PYX_ERR(21, 562, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator, __pyx_vtabptr_7setools_9policyrep_TERuleIterator) < (0)) __PYX_ERR(21, 562, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator) < (0)) __PYX_ERR(21, 562, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TERuleIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator) < (0)) __PYX_ERR(21, 562, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TERuleIterator) < (0)) __PYX_ERR(21, 562, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_ConditionalTERuleIterator = &__pyx_vtable_7setools_9policyrep_ConditionalTERuleIterator;
  __pyx_vtable_7setools_9policyrep_ConditionalTERuleIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_av_list_t *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_25ConditionalTERuleIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_ConditionalTERuleIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator)) __PYX_ERR(21, 659, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_ConditionalTERuleIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator) < (0)) __PYX_ERR(21, 659, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator = &__pyx_type_7setools_9policyrep_ConditionalTERuleIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator) < (0)) __PYX_ERR(21, 659, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator, __pyx_vtabptr_7setools_9policyrep_ConditionalTERuleIterator) < (0)) __PYX_ERR(21, 659, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator) < (0)) __PYX_ERR(21, 659, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ConditionalTERuleIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator) < (0)) __PYX_ERR(21, 659, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator) < (0)) __PYX_ERR(21, 659, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_FileNameTERuleIterator = &__pyx_vtable_7setools_9policyrep_FileNameTERuleIterator;
  __pyx_vtable_7setools_9policyrep_FileNameTERuleIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_FileNameTERuleIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_FileNameTERuleIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator)) __PYX_ERR(21, 732, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_FileNameTERuleIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator) < (0)) __PYX_ERR(21, 732, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator = &__pyx_type_7setools_9policyrep_FileNameTERuleIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator) < (0)) __PYX_ERR(21, 732, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator, __pyx_vtabptr_7setools_9policyrep_FileNameTERuleIterator) < (0)) __PYX_ERR(21, 732, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator) < (0)) __PYX_ERR(21, 732, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FileNameTERuleIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator) < (0)) __PYX_ERR(21, 732, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator) < (0)) __PYX_ERR(21, 732, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_BaseType = &__pyx_vtable_7setools_9policyrep_BaseType;
  __pyx_vtable_7setools_9policyrep_BaseType.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_BaseType_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType)) __PYX_ERR(22, 32, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_BaseType_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType) < (0)) __PYX_ERR(22, 32, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType = &__pyx_type_7setools_9policyrep_BaseType;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType) < (0)) __PYX_ERR(22, 32, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType, __pyx_vtabptr_7setools_9policyrep_BaseType) < (0)) __PYX_ERR(22, 32, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType) < (0)) __PYX_ERR(22, 32, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BaseType, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType) < (0)) __PYX_ERR(22, 32, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_BaseType) < (0)) __PYX_ERR(22, 32, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Type = &__pyx_vtable_7setools_9policyrep_Type;
  __pyx_vtable_7setools_9policyrep_Type.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseType;
  __pyx_vtable_7setools_9policyrep_Type.factory = (struct __pyx_obj_7setools_9policyrep_Type *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *))__pyx_f_7setools_9policyrep_4Type_factory;
  __pyx_vtable_7setools_9policyrep_Type._load_attributes = (void (*)(struct __pyx_obj_7setools_9policyrep_Type *))__pyx_f_7setools_9policyrep_4Type__load_attributes;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Type_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Type)) __PYX_ERR(22, 49, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Type_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Type) < (0)) __PYX_ERR(22, 49, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Type = &__pyx_type_7setools_9policyrep_Type;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Type) < (0)) __PYX_ERR(22, 49, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Type);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Type->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Type->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Type->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Type, __pyx_vtabptr_7setools_9policyrep_Type) < (0)) __PYX_ERR(22, 49, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Type) < (0)) __PYX_ERR(22, 49, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Type, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Type) < (0)) __PYX_ERR(22, 49, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Type) < (0)) __PYX_ERR(22, 49, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_TypeAttribute = &__pyx_vtable_7setools_9policyrep_TypeAttribute;
  __pyx_vtable_7setools_9policyrep_TypeAttribute.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseType;
  __pyx_vtable_7setools_9policyrep_TypeAttribute.factory = (struct __pyx_obj_7setools_9policyrep_TypeAttribute *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *))__pyx_f_7setools_9policyrep_13TypeAttribute_factory;
  __pyx_vtable_7setools_9policyrep_TypeAttribute.load_types = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_TypeAttribute *))__pyx_f_7setools_9policyrep_13TypeAttribute_load_types;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_TypeAttribute_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute)) __PYX_ERR(22, 119, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_TypeAttribute_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute) < (0)) __PYX_ERR(22, 119, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute = &__pyx_type_7setools_9policyrep_TypeAttribute;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttribute->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute) < (0)) __PYX_ERR(22, 119, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute, __pyx_vtabptr_7setools_9policyrep_TypeAttribute) < (0)) __PYX_ERR(22, 119, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute) < (0)) __PYX_ERR(22, 119, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TypeAttribute, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute) < (0)) __PYX_ERR(22, 119, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttribute) < (0)) __PYX_ERR(22, 119, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_TypeHashtabIterator = &__pyx_vtable_7setools_9policyrep_TypeHashtabIterator;
  __pyx_vtable_7setools_9policyrep_TypeHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_TypeHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_19TypeHashtabIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_TypeHashtabIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator)) __PYX_ERR(22, 191, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_TypeHashtabIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator) < (0)) __PYX_ERR(22, 191, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator = &__pyx_type_7setools_9policyrep_TypeHashtabIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator) < (0)) __PYX_ERR(22, 191, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator, __pyx_vtabptr_7setools_9policyrep_TypeHashtabIterator) < (0)) __PYX_ERR(22, 191, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator) < (0)) __PYX_ERR(22, 191, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TypeHashtabIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator) < (0)) __PYX_ERR(22, 191, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator) < (0)) __PYX_ERR(22, 191, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_TypeAttributeHashtabIterator = &__pyx_vtable_7setools_9policyrep_TypeAttributeHashtabIterator;
  __pyx_vtable_7setools_9policyrep_TypeAttributeHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_TypeAttributeHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_28TypeAttributeHashtabIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator)) __PYX_ERR(22, 242, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator) < (0)) __PYX_ERR(22, 242, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator = &__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator) < (0)) __PYX_ERR(22, 242, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator, __pyx_vtabptr_7setools_9policyrep_TypeAttributeHashtabIterator) < (0)) __PYX_ERR(22, 242, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator) < (0)) __PYX_ERR(22, 242, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TypeAttributeHashtabIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator) < (0)) __PYX_ERR(22, 242, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator) < (0)) __PYX_ERR(22, 242, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_TypeEbitmapIterator = &__pyx_vtable_7setools_9policyrep_TypeEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_TypeEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory;
  __pyx_vtable_7setools_9policyrep_TypeEbitmapIterator.factory_from_set = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *))__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory_from_set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_TypeEbitmapIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator)) __PYX_ERR(22, 292, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_TypeEbitmapIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator) < (0)) __PYX_ERR(22, 292, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator = &__pyx_type_7setools_9policyrep_TypeEbitmapIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator) < (0)) __PYX_ERR(22, 292, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator, __pyx_vtabptr_7setools_9policyrep_TypeEbitmapIterator) < (0)) __PYX_ERR(22, 292, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator) < (0)) __PYX_ERR(22, 292, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TypeEbitmapIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator) < (0)) __PYX_ERR(22, 292, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator) < (0)) __PYX_ERR(22, 292, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_TypeAttributeEbitmapIterator = &__pyx_vtable_7setools_9policyrep_TypeAttributeEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_TypeAttributeEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory;
  __pyx_vtable_7setools_9policyrep_TypeAttributeEbitmapIterator.factory_from_set = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *))__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory_from_set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator)) __PYX_ERR(22, 320, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 320, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator = &__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 320, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator, __pyx_vtabptr_7setools_9policyrep_TypeAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 320, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 320, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TypeAttributeEbitmapIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 320, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 320, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_TypeOrAttributeEbitmapIterator = &__pyx_vtable_7setools_9policyrep_TypeOrAttributeEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_TypeOrAttributeEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory;
  __pyx_vtable_7setools_9policyrep_TypeOrAttributeEbitmapIterator.factory_from_set = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *))__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory_from_set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator)) __PYX_ERR(22, 349, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 349, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator = &__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 349, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator, __pyx_vtabptr_7setools_9policyrep_TypeOrAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 349, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 349, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TypeOrAttributeEbitmapIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 349, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator) < (0)) __PYX_ERR(22, 349, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_User = &__pyx_vtable_7setools_9policyrep_User;
  __pyx_vtable_7setools_9policyrep_User.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_User.factory = (struct __pyx_obj_7setools_9policyrep_User *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, user_datum_t *))__pyx_f_7setools_9policyrep_4User_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_User = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_User_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_User)) __PYX_ERR(23, 10, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_User_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_User) < (0)) __PYX_ERR(23, 10, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_User = &__pyx_type_7setools_9policyrep_User;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_User->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_User) < (0)) __PYX_ERR(23, 10, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_User);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_User->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_User->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_User->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_User, __pyx_vtabptr_7setools_9policyrep_User) < (0)) __PYX_ERR(23, 10, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_User) < (0)) __PYX_ERR(23, 10, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_User, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_User) < (0)) __PYX_ERR(23, 10, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_User) < (0)) __PYX_ERR(23, 10, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_UserHashtabIterator = &__pyx_vtable_7setools_9policyrep_UserHashtabIterator;
  __pyx_vtable_7setools_9policyrep_UserHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_UserHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_19UserHashtabIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_UserHashtabIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator)) __PYX_ERR(23, 83, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_UserHashtabIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator) < (0)) __PYX_ERR(23, 83, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator = &__pyx_type_7setools_9policyrep_UserHashtabIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_UserHashtabIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator) < (0)) __PYX_ERR(23, 83, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator, __pyx_vtabptr_7setools_9policyrep_UserHashtabIterator) < (0)) __PYX_ERR(23, 83, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator) < (0)) __PYX_ERR(23, 83, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_UserHashtabIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator) < (0)) __PYX_ERR(23, 83, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserHashtabIterator) < (0)) __PYX_ERR(23, 83, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_UserEbitmapIterator = &__pyx_vtable_7setools_9policyrep_UserEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_UserEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_19UserEbitmapIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_UserEbitmapIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator)) __PYX_ERR(23, 101, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_UserEbitmapIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator) < (0)) __PYX_ERR(23, 101, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator = &__pyx_type_7setools_9policyrep_UserEbitmapIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator) < (0)) __PYX_ERR(23, 101, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator, __pyx_vtabptr_7setools_9policyrep_UserEbitmapIterator) < (0)) __PYX_ERR(23, 101, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator) < (0)) __PYX_ERR(23, 101, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_UserEbitmapIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator) < (0)) __PYX_ERR(23, 101, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_UserEbitmapIterator) < (0)) __PYX_ERR(23, 101, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Devicetreecon = &__pyx_vtable_7setools_9policyrep_Devicetreecon;
  __pyx_vtable_7setools_9policyrep_Devicetreecon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Devicetreecon.factory = (struct __pyx_obj_7setools_9policyrep_Devicetreecon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_13Devicetreecon_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Devicetreecon_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon)) __PYX_ERR(24, 66, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Devicetreecon_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon) < (0)) __PYX_ERR(24, 66, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon = &__pyx_type_7setools_9policyrep_Devicetreecon;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Devicetreecon->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon) < (0)) __PYX_ERR(24, 66, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon, __pyx_vtabptr_7setools_9policyrep_Devicetreecon) < (0)) __PYX_ERR(24, 66, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon) < (0)) __PYX_ERR(24, 66, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Devicetreecon, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon) < (0)) __PYX_ERR(24, 66, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Devicetreecon) < (0)) __PYX_ERR(24, 66, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Iomemcon = &__pyx_vtable_7setools_9policyrep_Iomemcon;
  __pyx_vtable_7setools_9policyrep_Iomemcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Iomemcon.factory = (struct __pyx_obj_7setools_9policyrep_Iomemcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_8Iomemcon_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Iomemcon_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon)) __PYX_ERR(24, 86, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Iomemcon_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon) < (0)) __PYX_ERR(24, 86, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon = &__pyx_type_7setools_9policyrep_Iomemcon;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Iomemcon->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon) < (0)) __PYX_ERR(24, 86, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon, __pyx_vtabptr_7setools_9policyrep_Iomemcon) < (0)) __PYX_ERR(24, 86, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon) < (0)) __PYX_ERR(24, 86, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Iomemcon, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon) < (0)) __PYX_ERR(24, 86, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Iomemcon) < (0)) __PYX_ERR(24, 86, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Ioportcon = &__pyx_vtable_7setools_9policyrep_Ioportcon;
  __pyx_vtable_7setools_9policyrep_Ioportcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Ioportcon.factory = (struct __pyx_obj_7setools_9policyrep_Ioportcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_9Ioportcon_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Ioportcon_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon)) __PYX_ERR(24, 106, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Ioportcon_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon) < (0)) __PYX_ERR(24, 106, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon = &__pyx_type_7setools_9policyrep_Ioportcon;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ioportcon->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon) < (0)) __PYX_ERR(24, 106, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon, __pyx_vtabptr_7setools_9policyrep_Ioportcon) < (0)) __PYX_ERR(24, 106, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon) < (0)) __PYX_ERR(24, 106, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Ioportcon, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon) < (0)) __PYX_ERR(24, 106, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Ioportcon) < (0)) __PYX_ERR(24, 106, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Pcidevicecon = &__pyx_vtable_7setools_9policyrep_Pcidevicecon;
  __pyx_vtable_7setools_9policyrep_Pcidevicecon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Pcidevicecon.factory = (struct __pyx_obj_7setools_9policyrep_Pcidevicecon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_12Pcidevicecon_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Pcidevicecon_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon)) __PYX_ERR(24, 126, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Pcidevicecon_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon) < (0)) __PYX_ERR(24, 126, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon = &__pyx_type_7setools_9policyrep_Pcidevicecon;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pcidevicecon->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon) < (0)) __PYX_ERR(24, 126, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon, __pyx_vtabptr_7setools_9policyrep_Pcidevicecon) < (0)) __PYX_ERR(24, 126, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon) < (0)) __PYX_ERR(24, 126, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Pcidevicecon, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon) < (0)) __PYX_ERR(24, 126, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pcidevicecon) < (0)) __PYX_ERR(24, 126, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_Pirqcon = &__pyx_vtable_7setools_9policyrep_Pirqcon;
  __pyx_vtable_7setools_9policyrep_Pirqcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Pirqcon.factory = (struct __pyx_obj_7setools_9policyrep_Pirqcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_7Pirqcon_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_Pirqcon_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon)) __PYX_ERR(24, 146, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_Pirqcon_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon) < (0)) __PYX_ERR(24, 146, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon = &__pyx_type_7setools_9policyrep_Pirqcon;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pirqcon->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon) < (0)) __PYX_ERR(24, 146, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon, __pyx_vtabptr_7setools_9policyrep_Pirqcon) < (0)) __PYX_ERR(24, 146, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon) < (0)) __PYX_ERR(24, 146, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Pirqcon, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon) < (0)) __PYX_ERR(24, 146, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_Pirqcon) < (0)) __PYX_ERR(24, 146, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_DevicetreeconIterator = &__pyx_vtable_7setools_9policyrep_DevicetreeconIterator;
  __pyx_vtable_7setools_9policyrep_DevicetreeconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_21DevicetreeconIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_DevicetreeconIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator)) __PYX_ERR(24, 169, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_DevicetreeconIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator) < (0)) __PYX_ERR(24, 169, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator = &__pyx_type_7setools_9policyrep_DevicetreeconIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator) < (0)) __PYX_ERR(24, 169, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator, __pyx_vtabptr_7setools_9policyrep_DevicetreeconIterator) < (0)) __PYX_ERR(24, 169, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator) < (0)) __PYX_ERR(24, 169, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DevicetreeconIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator) < (0)) __PYX_ERR(24, 169, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_DevicetreeconIterator) < (0)) __PYX_ERR(24, 169, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_IomemconIterator = &__pyx_vtable_7setools_9policyrep_IomemconIterator;
  __pyx_vtable_7setools_9policyrep_IomemconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_16IomemconIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_IomemconIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator)) __PYX_ERR(24, 186, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_IomemconIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator) < (0)) __PYX_ERR(24, 186, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator = &__pyx_type_7setools_9policyrep_IomemconIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IomemconIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator) < (0)) __PYX_ERR(24, 186, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator, __pyx_vtabptr_7setools_9policyrep_IomemconIterator) < (0)) __PYX_ERR(24, 186, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator) < (0)) __PYX_ERR(24, 186, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IomemconIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator) < (0)) __PYX_ERR(24, 186, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_IomemconIterator) < (0)) __PYX_ERR(24, 186, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_IoportconIterator = &__pyx_vtable_7setools_9policyrep_IoportconIterator;
  __pyx_vtable_7setools_9policyrep_IoportconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_17IoportconIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_IoportconIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator)) __PYX_ERR(24, 203, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_IoportconIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator) < (0)) __PYX_ERR(24, 203, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator = &__pyx_type_7setools_9policyrep_IoportconIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IoportconIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator) < (0)) __PYX_ERR(24, 203, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator, __pyx_vtabptr_7setools_9policyrep_IoportconIterator) < (0)) __PYX_ERR(24, 203, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator) < (0)) __PYX_ERR(24, 203, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IoportconIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator) < (0)) __PYX_ERR(24, 203, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_IoportconIterator) < (0)) __PYX_ERR(24, 203, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_PcideviceconIterator = &__pyx_vtable_7setools_9policyrep_PcideviceconIterator;
  __pyx_vtable_7setools_9policyrep_PcideviceconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_20PcideviceconIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_PcideviceconIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator)) __PYX_ERR(24, 220, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_PcideviceconIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator) < (0)) __PYX_ERR(24, 220, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator = &__pyx_type_7setools_9policyrep_PcideviceconIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PcideviceconIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator) < (0)) __PYX_ERR(24, 220, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator, __pyx_vtabptr_7setools_9policyrep_PcideviceconIterator) < (0)) __PYX_ERR(24, 220, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator) < (0)) __PYX_ERR(24, 220, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PcideviceconIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator) < (0)) __PYX_ERR(24, 220, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PcideviceconIterator) < (0)) __PYX_ERR(24, 220, __pyx_L1_error)
  __pyx_vtabptr_7setools_9policyrep_PirqconIterator = &__pyx_vtable_7setools_9policyrep_PirqconIterator;
  __pyx_vtable_7setools_9policyrep_PirqconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_15PirqconIterator_factory;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep_PirqconIterator_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator)) __PYX_ERR(24, 237, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep_PirqconIterator_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator) < (0)) __PYX_ERR(24, 237, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator = &__pyx_type_7setools_9policyrep_PirqconIterator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PirqconIterator->tp_base = __pyx_mstate_global->__pyx_ptype_7setools_9policyrep_OcontextIterator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator) < (0)) __PYX_ERR(24, 237, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator, __pyx_vtabptr_7setools_9policyrep_PirqconIterator) < (0)) __PYX_ERR(24, 237, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator) < (0)) __PYX_ERR(24, 237, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PirqconIterator, (PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator) < (0)) __PYX_ERR(24, 237, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7setools_9policyrep_PirqconIterator) < (0)) __PYX_ERR(24, 237, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_defaults = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_defaults_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_defaults)) __PYX_ERR(3, 173, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_defaults_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_defaults) < (0)) __PYX_ERR(3, 173, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_defaults = &__pyx_type_7setools_9policyrep___pyx_defaults;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_defaults) < (0)) __PYX_ERR(3, 173, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_defaults);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_defaults->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_defaults->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_defaults->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct__genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr)) __PYX_ERR(6, 205, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct__genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr) < (0)) __PYX_ERR(6, 205, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct__genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr) < (0)) __PYX_ERR(6, 205, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct__genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr)) __PYX_ERR(2, 153, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr) < (0)) __PYX_ERR(2, 153, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr) < (0)) __PYX_ERR(2, 153, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_2_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr)) __PYX_ERR(2, 155, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_2_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr) < (0)) __PYX_ERR(2, 155, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_2_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr) < (0)) __PYX_ERR(2, 155, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr)) __PYX_ERR(2, 344, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr) < (0)) __PYX_ERR(2, 344, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr) < (0)) __PYX_ERR(2, 344, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr)) __PYX_ERR(2, 349, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr) < (0)) __PYX_ERR(2, 349, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr) < (0)) __PYX_ERR(2, 349, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_5_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr)) __PYX_ERR(2, 353, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_5_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr) < (0)) __PYX_ERR(2, 353, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_5_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr) < (0)) __PYX_ERR(2, 353, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr)) __PYX_ERR(2, 357, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr) < (0)) __PYX_ERR(2, 357, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr) < (0)) __PYX_ERR(2, 357, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr)) __PYX_ERR(3, 337, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr) < (0)) __PYX_ERR(3, 337, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr) < (0)) __PYX_ERR(3, 337, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_8_expand_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand)) __PYX_ERR(14, 49, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_8_expand_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand) < (0)) __PYX_ERR(14, 49, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_8_expand;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand) < (0)) __PYX_ERR(14, 49, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_expand->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_9_expand_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand)) __PYX_ERR(4, 82, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_9_expand_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand) < (0)) __PYX_ERR(4, 82, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_9_expand;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand) < (0)) __PYX_ERR(4, 82, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_expand->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand)) __PYX_ERR(18, 46, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand) < (0)) __PYX_ERR(18, 46, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand) < (0)) __PYX_ERR(18, 46, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand)) __PYX_ERR(18, 104, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand) < (0)) __PYX_ERR(18, 104, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand) < (0)) __PYX_ERR(18, 104, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_12_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr)) __PYX_ERR(19, 37, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_12_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr) < (0)) __PYX_ERR(19, 37, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_12_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr) < (0)) __PYX_ERR(19, 37, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_13_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr)) __PYX_ERR(5, 123, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_13_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr) < (0)) __PYX_ERR(5, 123, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_13_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr) < (0)) __PYX_ERR(5, 123, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_14_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr)) __PYX_ERR(5, 149, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_14_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr) < (0)) __PYX_ERR(5, 149, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_14_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr) < (0)) __PYX_ERR(5, 149, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr)) __PYX_ERR(5, 206, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr) < (0)) __PYX_ERR(5, 206, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr) < (0)) __PYX_ERR(5, 206, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_16_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr)) __PYX_ERR(5, 240, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_16_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr) < (0)) __PYX_ERR(5, 240, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_16_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr) < (0)) __PYX_ERR(5, 240, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr)) __PYX_ERR(5, 250, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr) < (0)) __PYX_ERR(5, 250, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr) < (0)) __PYX_ERR(5, 250, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_18_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr)) __PYX_ERR(5, 255, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_18_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr) < (0)) __PYX_ERR(5, 255, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_18_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr) < (0)) __PYX_ERR(5, 255, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr)) __PYX_ERR(5, 284, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr) < (0)) __PYX_ERR(5, 284, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr) < (0)) __PYX_ERR(5, 284, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_20_defaults_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults)) __PYX_ERR(5, 457, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_20_defaults_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults) < (0)) __PYX_ERR(5, 457, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults = &__pyx_type_7setools_9policyrep___pyx_scope_struct_20_defaults;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults) < (0)) __PYX_ERR(5, 457, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20_defaults->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_21_terules_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules)) __PYX_ERR(5, 506, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_21_terules_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules) < (0)) __PYX_ERR(5, 506, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules = &__pyx_type_7setools_9policyrep___pyx_scope_struct_21_terules;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules) < (0)) __PYX_ERR(5, 506, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_terules->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_22_constraints_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints)) __PYX_ERR(5, 518, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_22_constraints_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints) < (0)) __PYX_ERR(5, 518, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints = &__pyx_type_7setools_9policyrep___pyx_scope_struct_22_constraints;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints) < (0)) __PYX_ERR(5, 518, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22_constraints->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr)) __PYX_ERR(5, 1057, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr) < (0)) __PYX_ERR(5, 1057, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr) < (0)) __PYX_ERR(5, 1057, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_24_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr)) __PYX_ERR(21, 132, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_24_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr) < (0)) __PYX_ERR(21, 132, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_24_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr) < (0)) __PYX_ERR(21, 132, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr)) __PYX_ERR(21, 182, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr) < (0)) __PYX_ERR(21, 182, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr) < (0)) __PYX_ERR(21, 182, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_26_expand_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand)) __PYX_ERR(21, 188, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_26_expand_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand) < (0)) __PYX_ERR(21, 188, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_26_expand;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand) < (0)) __PYX_ERR(21, 188, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26_expand->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr)) __PYX_ERR(21, 280, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr) < (0)) __PYX_ERR(21, 280, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr) < (0)) __PYX_ERR(21, 280, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_28_expand_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand)) __PYX_ERR(21, 379, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_28_expand_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand) < (0)) __PYX_ERR(21, 379, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_28_expand;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand) < (0)) __PYX_ERR(21, 379, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28_expand->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_29_expand_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand)) __PYX_ERR(21, 455, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_29_expand_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand) < (0)) __PYX_ERR(21, 455, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_29_expand;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand) < (0)) __PYX_ERR(21, 455, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_expand->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_30_expand_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand)) __PYX_ERR(21, 531, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_30_expand_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand) < (0)) __PYX_ERR(21, 531, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_30_expand;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand) < (0)) __PYX_ERR(21, 531, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_expand->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_31_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr)) __PYX_ERR(21, 770, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_31_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr) < (0)) __PYX_ERR(21, 770, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_31_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr) < (0)) __PYX_ERR(21, 770, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_32_expand_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand)) __PYX_ERR(22, 87, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_32_expand_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand) < (0)) __PYX_ERR(22, 87, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_32_expand;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand) < (0)) __PYX_ERR(22, 87, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_expand->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_33_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr)) __PYX_ERR(22, 114, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_33_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr) < (0)) __PYX_ERR(22, 114, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_33_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr) < (0)) __PYX_ERR(22, 114, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr)) __PYX_ERR(23, 36, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr) < (0)) __PYX_ERR(23, 36, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr) < (0)) __PYX_ERR(23, 36, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7setools_9policyrep___pyx_scope_struct_35_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr)) __PYX_ERR(23, 63, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7setools_9policyrep___pyx_scope_struct_35_genexpr_spec, __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr) < (0)) __PYX_ERR(23, 63, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_35_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr) < (0)) __PYX_ERR(23, 63, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_2_4(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyTypeObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  0, 0,
  #else
  sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7cpython_4type_type) __PYX_ERR(26, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec_policyrep(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_policyrep},
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
  {Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE},
  #endif
  #if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATE
  {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},
  #endif
  {0, NULL}
};
#endif

#ifdef __cplusplus
namespace {
  struct PyModuleDef __pyx_moduledef =
  #else
  static struct PyModuleDef __pyx_moduledef =
  #endif
  {
      PyModuleDef_HEAD_INIT,
      "policyrep",
      0, /* m_doc */
    #if CYTHON_USE_MODULE_STATE
      sizeof(__pyx_mstatetype), /* m_size */
    #else
      (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */
    #endif
      __pyx_methods /* m_methods */,
    #if CYTHON_PEP489_MULTI_PHASE_INIT
      __pyx_moduledef_slots, /* m_slots */
    #else
      NULL, /* m_reload */
    #endif
    #if CYTHON_USE_MODULE_STATE
      __pyx_m_traverse, /* m_traverse */
      __pyx_m_clear, /* m_clear */
      NULL /* m_free */
    #else
      NULL, /* m_traverse */
      NULL, /* m_clear */
      NULL /* m_free */
    #endif
  };
  #ifdef __cplusplus
} /* anonymous namespace */
#endif

/* PyModInitFuncType */
#ifndef CYTHON_NO_PYINIT_EXPORT
  #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#else
  #ifdef __cplusplus
  #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
  #else
  #define __Pyx_PyMODINIT_FUNC PyObject *
  #endif
#endif

__Pyx_PyMODINIT_FUNC PyInit_policyrep(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_policyrep(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
/* ModuleCreationPEP489 */
#if CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\
      || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000))
static PY_INT64_T __Pyx_GetCurrentInterpreterId(void) {
    {
        PyObject *module = PyImport_ImportModule("_interpreters"); // 3.13+ I think
        if (!module) {
            PyErr_Clear(); // just try the 3.8-3.12 version
            module = PyImport_ImportModule("_xxsubinterpreters");
            if (!module) goto bad;
        }
        PyObject *current = PyObject_CallMethod(module, "get_current", NULL);
        Py_DECREF(module);
        if (!current) goto bad;
        if (PyTuple_Check(current)) {
            PyObject *new_current = PySequence_GetItem(current, 0);
            Py_DECREF(current);
            current = new_current;
            if (!new_current) goto bad;
        }
        long long as_c_int = PyLong_AsLongLong(current);
        Py_DECREF(current);
        return as_c_int;
    }
  bad:
    PySys_WriteStderr("__Pyx_GetCurrentInterpreterId failed. Try setting the C define CYTHON_PEP489_MULTI_PHASE_INIT=0\n");
    return -1;
}
#endif
#if !CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    static PY_INT64_T main_interpreter_id = -1;
#if CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
    PY_INT64_T current_id = GraalPyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
#elif CYTHON_COMPILING_IN_GRAAL
    PY_INT64_T current_id = PyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
#elif CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\
      || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000))
    PY_INT64_T current_id = __Pyx_GetCurrentInterpreterId();
#elif CYTHON_COMPILING_IN_LIMITED_API
    PY_INT64_T current_id = PyInterpreterState_GetID(PyInterpreterState_Get());
#else
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
#endif
    if (unlikely(current_id == -1)) {
        return -1;
    }
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return 0;
    } else if (unlikely(main_interpreter_id != current_id)) {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
#endif
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)
{
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
            result = PyDict_SetItemString(moddict, to_name, value);
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    CYTHON_UNUSED_VAR(def);
    #if !CYTHON_USE_MODULE_STATE
    if (__Pyx_check_single_interpreter())
        return NULL;
    #endif
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec_policyrep(PyObject *__pyx_pyinit_module)
#endif
{
  int stringtab_initialized = 0;
  #if CYTHON_USE_MODULE_STATE
  int pystate_addmodule_run = 0;
  #endif
  __pyx_mstatetype *__pyx_mstate = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  size_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'policyrep' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #else
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  /*--- Module creation code ---*/
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_t_1 = __pyx_pyinit_module;
  Py_INCREF(__pyx_t_1);
  #else
  __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #if CYTHON_USE_MODULE_STATE
  {
    int add_module_result = __Pyx_State_AddModule(__pyx_t_1, &__pyx_moduledef);
    __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "policyrep" pseudovariable */
    if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    pystate_addmodule_run = 1;
  }
  #else
  __pyx_m = __pyx_t_1;
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
  PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_USED);
  #endif
  __pyx_mstate = __pyx_mstate_global;
  CYTHON_UNUSED_VAR(__pyx_t_1);
  __pyx_mstate->__pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_mstate->__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_mstate->__pyx_d);
  __pyx_mstate->__pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_mstate->__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_cython_runtime = __Pyx_PyImport_AddModuleRef("cython_runtime"); if (unlikely(!__pyx_mstate->__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_mstate->__pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /* ImportRefnannyAPI */
  #if CYTHON_REFNANNY
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
  if (!__Pyx_RefNanny) {
    PyErr_Clear();
    __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
    if (!__Pyx_RefNanny)
        Py_FatalError("failed to import 'refnanny' module");
  }
  #endif
  
__Pyx_RefNannySetupContext("PyInit_policyrep", 0);
  __Pyx_init_runtime_version();
  if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Library function declarations ---*/
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  stringtab_initialized = 1;
  if (__Pyx_InitGlobals() < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__pyx_module_is_main_setools__policyrep) {
    if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name_2, __pyx_mstate_global->__pyx_n_u_main) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  }
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "setools.policyrep")) {
      if (unlikely((PyDict_SetItemString(modules, "setools.policyrep", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_CreateCodeObjects(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code(__pyx_mstate);
  (void)__Pyx_modinit_variable_export_code(__pyx_mstate);
  (void)__Pyx_modinit_function_export_code(__pyx_mstate);
  if (unlikely((__Pyx_modinit_type_init_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  (void)__Pyx_modinit_variable_import_code(__pyx_mstate);
  (void)__Pyx_modinit_function_import_code(__pyx_mstate);
  /*--- Execution code ---*/

  /* "setools/policyrep.pyx":14
 * from libc.string cimport memcpy, memset, strerror
 * 
 * import dataclasses             # <<<<<<<<<<<<<<
 * import logging
 * import warnings
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_dataclasses, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_dataclasses, __pyx_t_2) < (0)) __PYX_ERR(0, 14, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep.pyx":15
 * 
 * import dataclasses
 * import logging             # <<<<<<<<<<<<<<
 * import warnings
 * import itertools
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_logging, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_logging, __pyx_t_2) < (0)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep.pyx":16
 * import dataclasses
 * import logging
 * import warnings             # <<<<<<<<<<<<<<
 * import itertools
 * import ipaddress
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_warnings, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_warnings, __pyx_t_2) < (0)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep.pyx":17
 * import logging
 * import warnings
 * import itertools             # <<<<<<<<<<<<<<
 * import ipaddress
 * import collections
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_itertools, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_itertools, __pyx_t_2) < (0)) __PYX_ERR(0, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep.pyx":18
 * import warnings
 * import itertools
 * import ipaddress             # <<<<<<<<<<<<<<
 * import collections
 * import enum
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_ipaddress, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ipaddress, __pyx_t_2) < (0)) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep.pyx":19
 * import itertools
 * import ipaddress
 * import collections             # <<<<<<<<<<<<<<
 * import enum
 * import weakref
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_collections, __pyx_t_2) < (0)) __PYX_ERR(0, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep.pyx":20
 * import ipaddress
 * import collections
 * import enum             # <<<<<<<<<<<<<<
 * import weakref
 * from typing import TypeVar, Union
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_enum, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_enum, __pyx_t_2) < (0)) __PYX_ERR(0, 20, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep.pyx":21
 * import collections
 * import enum
 * import weakref             # <<<<<<<<<<<<<<
 * from typing import TypeVar, Union
 * 
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_weakref, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_weakref, __pyx_t_2) < (0)) __PYX_ERR(0, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep.pyx":22
 * import enum
 * import weakref
 * from typing import TypeVar, Union             # <<<<<<<<<<<<<<
 * 
 * cimport sepol
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_TypeVar,__pyx_mstate_global->__pyx_n_u_Union};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_typing, __pyx_imported_names, 2, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_TypeVar,__pyx_mstate_global->__pyx_n_u_Union};
    for (__pyx_t_3=0; __pyx_t_3 < 2; __pyx_t_3++) {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 22, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep.pyx":27
 * cimport selinux
 * 
 * from .exception import *             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "<stdio.h>":
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u__36};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_exception, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_setools_exception, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_import_star(__pyx_t_2) < 0) __PYX_ERR(0, 27, __pyx_L1_error);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":9
 * # Classes
 * #
 * class PolicyEnum(enum.Enum):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_PolicyEnum, __pyx_mstate_global->__pyx_n_u_PolicyEnum, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Base_class_for_policy_enumerati); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__pyx_t_4 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(1, 9, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":19
 *     """
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyEnum_1__str__, 0, __pyx_mstate_global->__pyx_n_u_PolicyEnum___str, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_2) < (0)) __PYX_ERR(1, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":22
 *         return self.name
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         if not spec:
 *             return self.name
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyEnum_3__format__, 0, __pyx_mstate_global->__pyx_n_u_PolicyEnum___format, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_format, __pyx_t_2) < (0)) __PYX_ERR(1, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":28
 *             return super(PolicyEnum, self).__format__(spec)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return super(PolicyEnum, self).__eq__(other)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyEnum_5__eq__, 0, __pyx_mstate_global->__pyx_n_u_PolicyEnum___eq, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_eq, __pyx_t_2) < (0)) __PYX_ERR(1, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":31
 *         return super(PolicyEnum, self).__eq__(other)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyEnum_7__hash__, 0, __pyx_mstate_global->__pyx_n_u_PolicyEnum___hash, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_hash, __pyx_t_2) < (0)) __PYX_ERR(1, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":34
 *         return hash(self.name)
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def lookup(cls, value):
 *         """Look up an enumeration by name or value."""
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyEnum_9lookup, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_mstate_global->__pyx_n_u_PolicyEnum_lookup, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __pyx_t_7 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_lookup, __pyx_t_7) < (0)) __PYX_ERR(1, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/util.pxi":9
 * # Classes
 * #
 * class PolicyEnum(enum.Enum):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
  __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PolicyEnum, __pyx_t_4, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PolicyEnum, __pyx_t_7) < (0)) __PYX_ERR(1, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/util.pxi":43
 *             return cls(value)
 * 
 * class WeakKeyDefaultDict(weakref.WeakKeyDictionary):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_weakref); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_WeakKeyDictionary); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_5, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_A_dictionary_with_a_weak_refere); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_5 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(1, 43, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/util.pxi":55
 *     """
 * 
 *     def __init__(self, default_factory, *args):             # <<<<<<<<<<<<<<
 *         self.default_factory = default_factory
 *         super().__init__(args)
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_1__init__, 0, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict___init, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  PyList_Append(__pyx_t_4, __pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(1, 55, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":59
 *         super().__init__(args)
 * 
 *     def __getitem__(self, key):             # <<<<<<<<<<<<<<
 *         try:
 *             return super().__getitem__(key)
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_3__getitem__, 0, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict___getitem, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  PyList_Append(__pyx_t_4, __pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_getitem, __pyx_t_2) < (0)) __PYX_ERR(1, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":65
 *             return self.__missing__(key)
 * 
 *     def __missing__(self, key):             # <<<<<<<<<<<<<<
 *         if self.default_factory is None:
 *             raise KeyError(key)
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_5__missing__, 0, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict___missing, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_missing, __pyx_t_2) < (0)) __PYX_ERR(1, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":43
 *             return cls(value)
 * 
 * class WeakKeyDefaultDict(weakref.WeakKeyDictionary):             # <<<<<<<<<<<<<<
 * 
 *     """
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict, __pyx_t_5, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_CyFunction_InitClassCell(__pyx_t_4, __pyx_t_2) < (0)) __PYX_ERR(1, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict, __pyx_t_2) < (0)) __PYX_ERR(1, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/util.pxi":220
 * 
 * 
 * def lookup_boolean_name_sub(name):             # <<<<<<<<<<<<<<
 *     """
 *     Read the /etc/selinux/TYPE/booleans.subs_dist file looking
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_1lookup_boolean_name_sub, 0, __pyx_mstate_global->__pyx_n_u_lookup_boolean_name_sub, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_lookup_boolean_name_sub, __pyx_t_5) < (0)) __PYX_ERR(1, 220, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":8
 * 
 * @dataclasses.dataclass(eq=True, frozen=True)
 * class TruthTableRow:             # <<<<<<<<<<<<<<
 * 
 *     """A single row of a Conditional expression truth table."""
*/
  __pyx_t_5 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_TruthTableRow, __pyx_mstate_global->__pyx_n_u_TruthTableRow, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_A_single_row_of_a_Conditional_ex); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_values, __pyx_mstate_global->__pyx_kp_u_dict_str_bool) < (0)) __PYX_ERR(6, 8, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_result, __pyx_mstate_global->__pyx_n_u_bool_2) < (0)) __PYX_ERR(6, 8, __pyx_L1_error)
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_annotations, __pyx_t_6) < (0)) __PYX_ERR(6, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "setools/policyrep/boolcond.pxi":7
 * #
 * 
 * @dataclasses.dataclass(eq=True, frozen=True)             # <<<<<<<<<<<<<<
 * class TruthTableRow:
 * 
*/
  __pyx_t_7 = NULL;
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_dataclass); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_4, NULL};
    __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eq_2, Py_True, __pyx_t_8, __pyx_callargs+1, 0) < (0)) __PYX_ERR(6, 7, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_frozen, Py_True, __pyx_t_8, __pyx_callargs+1, 1) < (0)) __PYX_ERR(6, 7, __pyx_L1_error)
    __pyx_t_2 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }

  /* "setools/policyrep/boolcond.pxi":8
 * 
 * @dataclasses.dataclass(eq=True, frozen=True)
 * class TruthTableRow:             # <<<<<<<<<<<<<<
 * 
 *     """A single row of a Conditional expression truth table."""
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_TruthTableRow, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_5, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_9};
    __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TruthTableRow, __pyx_t_6) < (0)) __PYX_ERR(6, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":17
 * 
 * 
 * cdef object _cond_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * 
 * #
*/
  __pyx_t_6 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, ((PyObject *)(&PyDict_Type))};
    __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 17, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
  }
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__cond_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__cond_cache, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":38
 *         return b
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         """The policy statement."""
 *         return f"bool {self.name} {str(self.state).lower()};"
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Boolean_1statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Boolean_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Boolean, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_5) < (0)) __PYX_ERR(6, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Boolean_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Boolean___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Boolean, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Boolean, (type(self), 0x2fa4582, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Boolean__set_state(self, __pyx_state)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Boolean_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Boolean___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Boolean, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":135
 *             return str(self) == str(other)
 * 
 *     def evaluate(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Evaluate the expression with the stated boolean values.
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Conditional_9evaluate, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Conditional_evaluate, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional, __pyx_mstate_global->__pyx_n_u_evaluate, __pyx_t_5) < (0)) __PYX_ERR(6, 135, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":167
 *         return stack[0]
 * 
 *     def expression(self):             # <<<<<<<<<<<<<<
 *         """Iterator over The conditional expression."""
 *         return iter(self._postfix_expression)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Conditional_11expression, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Conditional_expression, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional, __pyx_mstate_global->__pyx_n_u_expression, __pyx_t_5) < (0)) __PYX_ERR(6, 167, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":171
 *         return iter(self._postfix_expression)
 * 
 *     def false_rules(self):             # <<<<<<<<<<<<<<
 *         """An iterator over the rules in the false (else) block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Conditional_13false_rules, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Conditional_false_rules, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional, __pyx_mstate_global->__pyx_n_u_false_rules, __pyx_t_5) < (0)) __PYX_ERR(6, 171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":176
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.false_list, self, False)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Conditional_15statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Conditional_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_5) < (0)) __PYX_ERR(6, 176, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":179
 *         raise NoStatement
 * 
 *     def true_rules(self):             # <<<<<<<<<<<<<<
 *         """An iterator over the rules in the true block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Conditional_17true_rules, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Conditional_true_rules, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional, __pyx_mstate_global->__pyx_n_u_true_rules, __pyx_t_5) < (0)) __PYX_ERR(6, 179, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":184
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)
 * 
 *     def truth_table(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generate a truth table for this expression.
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Conditional_19truth_table, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Conditional_truth_table, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional, __pyx_mstate_global->__pyx_n_u_truth_table, __pyx_t_5) < (0)) __PYX_ERR(6, 184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Conditional_21__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Conditional___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Conditional, (type(self), 0x9d7ad19, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Conditional__set_state(self, __pyx_state)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Conditional_23__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Conditional___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Conditional, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":234
 * 
 *     _cond_expr_val_to_details = {
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),             # <<<<<<<<<<<<<<
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
*/
  __pyx_t_5 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(COND_NOT); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_4lambda1, 0, __pyx_mstate_global->__pyx_n_u_ConditionalOperator_lambda, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  __pyx_t_9 = PyTuple_Pack(3, __pyx_mstate_global->__pyx_kp_u__37, __pyx_mstate_global->__pyx_int_5, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_t_9) < (0)) __PYX_ERR(6, 234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/boolcond.pxi":235
 *     _cond_expr_val_to_details = {
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),             # <<<<<<<<<<<<<<
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(COND_OR); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_5lambda2, 0, __pyx_mstate_global->__pyx_n_u_ConditionalOperator_lambda, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __pyx_t_6 = PyTuple_Pack(3, __pyx_mstate_global->__pyx_kp_u__38, __pyx_mstate_global->__pyx_int_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_9, __pyx_t_6) < (0)) __PYX_ERR(6, 234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "setools/policyrep/boolcond.pxi":236
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),             # <<<<<<<<<<<<<<
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
*/
  __pyx_t_6 = __Pyx_PyLong_From___pyx_anon_enum(COND_AND); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_6lambda3, 0, __pyx_mstate_global->__pyx_n_u_ConditionalOperator_lambda, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __pyx_t_2 = PyTuple_Pack(3, __pyx_mstate_global->__pyx_kp_u__39, __pyx_mstate_global->__pyx_int_3, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_6, __pyx_t_2) < (0)) __PYX_ERR(6, 234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/boolcond.pxi":237
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),             # <<<<<<<<<<<<<<
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(COND_XOR); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_7lambda4, 0, __pyx_mstate_global->__pyx_n_u_ConditionalOperator_lambda, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  __pyx_t_9 = PyTuple_Pack(3, __pyx_mstate_global->__pyx_kp_u__40, __pyx_mstate_global->__pyx_int_2, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_t_9) < (0)) __PYX_ERR(6, 234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/boolcond.pxi":238
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),             # <<<<<<<<<<<<<<
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}
 * 
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(COND_EQ); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_8lambda5, 0, __pyx_mstate_global->__pyx_n_u_ConditionalOperator_lambda, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __pyx_t_6 = PyTuple_Pack(3, __pyx_mstate_global->__pyx_kp_u__11, __pyx_mstate_global->__pyx_int_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_9, __pyx_t_6) < (0)) __PYX_ERR(6, 234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "setools/policyrep/boolcond.pxi":239
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __pyx_t_6 = __Pyx_PyLong_From___pyx_anon_enum(COND_NEQ); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_9lambda6, 0, __pyx_mstate_global->__pyx_n_u_ConditionalOperator_lambda, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __pyx_t_2 = PyTuple_Pack(3, __pyx_mstate_global->__pyx_kp_u__12, __pyx_mstate_global->__pyx_int_4, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_6, __pyx_t_2) < (0)) __PYX_ERR(6, 234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalOperator, __pyx_mstate_global->__pyx_n_u_cond_expr_val_to_details, __pyx_t_5) < (0)) __PYX_ERR(6, 233, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":254
 *         return self.text
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_3statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalOperator_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalOperator, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_5) < (0)) __PYX_ERR(6, 254, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalOperator___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalOperator, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0x60d06d1, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConditionalOperator__set_state(self, __pyx_state)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalOperator___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalOperator, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22BooleanHashtabIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BooleanHashtabIterator___reduce, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22BooleanHashtabIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BooleanHashtabIterator___setstat, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":316
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_5) < (0)) __PYX_ERR(6, 316, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalIterator___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalIterator___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/boolcond.pxi":363
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_23ConditionalExprIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalExprIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalExprIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_5) < (0)) __PYX_ERR(6, 363, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_23ConditionalExprIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalExprIterator___reduce, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_23ConditionalExprIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalExprIterator___setsta, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/bounds.pxi":11
 * # Classes
 * #
 * class BoundsRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of *bounds rule types."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_5, __pyx_mstate_global->__pyx_n_u_BoundsRuletype, __pyx_mstate_global->__pyx_n_u_BoundsRuletype, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Enumeration_of_bounds_rule_types); if (unlikely(!__pyx_t_9)) __PYX_ERR(8, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_5 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(8, 11, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/bounds.pxi":15
 *     """Enumeration of *bounds rule types."""
 * 
 *     typebounds = 1             # <<<<<<<<<<<<<<
 * 
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_typebounds, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(8, 15, __pyx_L1_error)

  /* "setools/policyrep/bounds.pxi":11
 * # Classes
 * #
 * class BoundsRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of *bounds rule types."""
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_BoundsRuletype, __pyx_t_5, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BoundsRuletype, __pyx_t_2) < (0)) __PYX_ERR(8, 11, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/bounds.pxi":50
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.parent} {self.child};"
 * 
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6Bounds_7statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Bounds_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Bounds, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_5) < (0)) __PYX_ERR(8, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6Bounds_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Bounds___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Bounds, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Bounds, (type(self), 0x4c46613, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Bounds__set_state(self, __pyx_state)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6Bounds_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Bounds___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Bounds, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/bounds.pxi":103
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t * datum
 * 
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18TypeboundsIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeboundsIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeboundsIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_5) < (0)) __PYX_ERR(8, 103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18TypeboundsIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeboundsIterator___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18TypeboundsIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeboundsIterator___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/constraint.pxi":11
 * # Typing
 * #
 * AnyConstraint = TypeVar("AnyConstraint", bound=BaseConstraint)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_6 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_TypeVar); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_6, __pyx_mstate_global->__pyx_n_u_AnyConstraint};
    __pyx_t_2 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 11, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_bound, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseConstraint), __pyx_t_2, __pyx_callargs+2, 0) < (0)) __PYX_ERR(2, 11, __pyx_L1_error)
    __pyx_t_5 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_2);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 11, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AnyConstraint, __pyx_t_5) < (0)) __PYX_ERR(2, 11, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/constraint.pxi":17
 * # Classes
 * #
 * class ConstraintRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of constraint types."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_5, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Enumeration_of_constraint_types); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__pyx_t_5 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(2, 17, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/constraint.pxi":21
 *     """Enumeration of constraint types."""
 * 
 *     constrain = 1             # <<<<<<<<<<<<<<
 *     mlsconstrain = 2
 *     validatetrans = 3
*/
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_constrain, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(2, 21, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":22
 * 
 *     constrain = 1
 *     mlsconstrain = 2             # <<<<<<<<<<<<<<
 *     validatetrans = 3
 *     mlsvalidatetrans = 4
*/
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_mlsconstrain, __pyx_mstate_global->__pyx_int_2) < (0)) __PYX_ERR(2, 22, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":23
 *     constrain = 1
 *     mlsconstrain = 2
 *     validatetrans = 3             # <<<<<<<<<<<<<<
 *     mlsvalidatetrans = 4
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_validatetrans, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(2, 23, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":24
 *     mlsconstrain = 2
 *     validatetrans = 3
 *     mlsvalidatetrans = 4             # <<<<<<<<<<<<<<
 * 
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_mlsvalidatetrans, __pyx_mstate_global->__pyx_int_4) < (0)) __PYX_ERR(2, 24, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":17
 * # Classes
 * #
 * class ConstraintRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of constraint types."""
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype, __pyx_t_5, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ConstraintRuletype, __pyx_t_9) < (0)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14BaseConstraint_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseConstraint___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseConstraint, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0x970accd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseConstraint__set_state(self, __pyx_state)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14BaseConstraint_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseConstraint___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseConstraint, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/constraint.pxi":60
 *         return c
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if len(self.perms) > 1:
 *             perms = f"{{ {' '.join(sorted(self.perms))} }}"
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10Constraint_1statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Constraint_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Constraint, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_5) < (0)) __PYX_ERR(2, 60, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10Constraint_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Constraint___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Constraint, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Constraint, (type(self), 0x948236a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Constraint__set_state(self, __pyx_state)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10Constraint_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Constraint___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Constraint, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/constraint.pxi":90
 *         raise ConstraintUseError(f"{self.ruletype} rules do not have permissions.")
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.tclass} ({self.expression});"
 * 
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13Validatetrans_1statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Validatetrans_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Validatetrans, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_5) < (0)) __PYX_ERR(2, 90, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13Validatetrans_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Validatetrans___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Validatetrans, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0x970accd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Validatetrans__set_state(self, __pyx_state)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13Validatetrans_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Validatetrans___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Validatetrans, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/constraint.pxi":170
 *         return self._postfix == other
 * 
 *     def infix(self):             # <<<<<<<<<<<<<<
 *         """The expression as an infix notation list."""
 * 
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_20ConstraintExpression_9infix, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintExpression_infix, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExpression, __pyx_mstate_global->__pyx_n_u_infix, __pyx_t_5) < (0)) __PYX_ERR(2, 170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/constraint.pxi":245
 *         return self._infix
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_20ConstraintExpression_11statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintExpression_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExpression, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_5) < (0)) __PYX_ERR(2, 245, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_20ConstraintExpression_13__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintExpression___reduce_cy, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExpression, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0xcf964d8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConstraintExpression__set_state(self, __pyx_state)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_20ConstraintExpression_15__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintExpression___setstate, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExpression, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/constraint.pxi":277
 * 
 *     _expr_type_to_text = {
 *         sepol.CEXPR_NOT: "not",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_AND: "and",
 *         sepol.CEXPR_OR: "or"}
*/
  __pyx_t_5 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_NOT); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_not) < (0)) __PYX_ERR(2, 277, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":278
 *     _expr_type_to_text = {
 *         sepol.CEXPR_NOT: "not",
 *         sepol.CEXPR_AND: "and",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_OR: "or"}
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_AND); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_and) < (0)) __PYX_ERR(2, 277, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":279
 *         sepol.CEXPR_NOT: "not",
 *         sepol.CEXPR_AND: "and",
 *         sepol.CEXPR_OR: "or"}             # <<<<<<<<<<<<<<
 * 
 *     _expr_op_to_text = {
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_OR); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_or) < (0)) __PYX_ERR(2, 277, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode, __pyx_mstate_global->__pyx_n_u_expr_type_to_text, __pyx_t_5) < (0)) __PYX_ERR(2, 276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/constraint.pxi":282
 * 
 *     _expr_op_to_text = {
 *         sepol.CEXPR_EQ: "==",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_NEQ: "!=",
 *         sepol.CEXPR_DOM: "dom",
*/
  __pyx_t_5 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_EQ); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u__11) < (0)) __PYX_ERR(2, 282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":283
 *     _expr_op_to_text = {
 *         sepol.CEXPR_EQ: "==",
 *         sepol.CEXPR_NEQ: "!=",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_DOM: "dom",
 *         sepol.CEXPR_DOMBY: "domby",
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_NEQ); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u__12) < (0)) __PYX_ERR(2, 282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":284
 *         sepol.CEXPR_EQ: "==",
 *         sepol.CEXPR_NEQ: "!=",
 *         sepol.CEXPR_DOM: "dom",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_DOMBY: "domby",
 *         sepol.CEXPR_INCOMP: "incomp"}
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_DOM); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_dom) < (0)) __PYX_ERR(2, 282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":285
 *         sepol.CEXPR_NEQ: "!=",
 *         sepol.CEXPR_DOM: "dom",
 *         sepol.CEXPR_DOMBY: "domby",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_INCOMP: "incomp"}
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_DOMBY); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_domby) < (0)) __PYX_ERR(2, 282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":286
 *         sepol.CEXPR_DOM: "dom",
 *         sepol.CEXPR_DOMBY: "domby",
 *         sepol.CEXPR_INCOMP: "incomp"}             # <<<<<<<<<<<<<<
 * 
 *     _sym_to_text = {
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_INCOMP); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_incomp) < (0)) __PYX_ERR(2, 282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode, __pyx_mstate_global->__pyx_n_u_expr_op_to_text, __pyx_t_5) < (0)) __PYX_ERR(2, 281, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/constraint.pxi":289
 * 
 *     _sym_to_text = {
 *         sepol.CEXPR_USER: "u1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_ROLE: "r1",
 *         sepol.CEXPR_TYPE: "t1",
*/
  __pyx_t_5 = __Pyx_PyDict_NewPresized(21); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_USER); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_u1) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":290
 *     _sym_to_text = {
 *         sepol.CEXPR_USER: "u1",
 *         sepol.CEXPR_ROLE: "r1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_TYPE: "t1",
 *         sepol.CEXPR_USER + sepol.CEXPR_TARGET: "u2",
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_ROLE); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_r1) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":291
 *         sepol.CEXPR_USER: "u1",
 *         sepol.CEXPR_ROLE: "r1",
 *         sepol.CEXPR_TYPE: "t1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_USER + sepol.CEXPR_TARGET: "u2",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_TARGET: "r2",
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_TYPE); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_t1) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":292
 *         sepol.CEXPR_ROLE: "r1",
 *         sepol.CEXPR_TYPE: "t1",
 *         sepol.CEXPR_USER + sepol.CEXPR_TARGET: "u2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_ROLE + sepol.CEXPR_TARGET: "r2",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_TARGET: "t2",
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_USER + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_u2) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":293
 *         sepol.CEXPR_TYPE: "t1",
 *         sepol.CEXPR_USER + sepol.CEXPR_TARGET: "u2",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_TARGET: "r2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_TYPE + sepol.CEXPR_TARGET: "t2",
 *         sepol.CEXPR_USER + sepol.CEXPR_XTARGET: "u3",
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_ROLE + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_r2) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":294
 *         sepol.CEXPR_USER + sepol.CEXPR_TARGET: "u2",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_TARGET: "r2",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_TARGET: "t2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_USER + sepol.CEXPR_XTARGET: "u3",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET: "r3",
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_TYPE + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_t2) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":295
 *         sepol.CEXPR_ROLE + sepol.CEXPR_TARGET: "r2",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_TARGET: "t2",
 *         sepol.CEXPR_USER + sepol.CEXPR_XTARGET: "u3",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET: "r3",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET: "t3",
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_USER + CEXPR_XTARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_u3) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":296
 *         sepol.CEXPR_TYPE + sepol.CEXPR_TARGET: "t2",
 *         sepol.CEXPR_USER + sepol.CEXPR_XTARGET: "u3",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET: "r3",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET: "t3",
 *         sepol.CEXPR_L1L2: "l1",
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_ROLE + CEXPR_XTARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_r3) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":297
 *         sepol.CEXPR_USER + sepol.CEXPR_XTARGET: "u3",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET: "r3",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET: "t3",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1L2: "l1",
 *         sepol.CEXPR_L1H2: "l1",
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_TYPE + CEXPR_XTARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_t3) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":298
 *         sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET: "r3",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET: "t3",
 *         sepol.CEXPR_L1L2: "l1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1H2: "l1",
 *         sepol.CEXPR_H1L2: "h1",
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_L1L2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_l1) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":299
 *         sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET: "t3",
 *         sepol.CEXPR_L1L2: "l1",
 *         sepol.CEXPR_L1H2: "l1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_H1L2: "h1",
 *         sepol.CEXPR_H1H2: "h1",
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_L1H2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_l1) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":300
 *         sepol.CEXPR_L1L2: "l1",
 *         sepol.CEXPR_L1H2: "l1",
 *         sepol.CEXPR_H1L2: "h1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_H1H2: "h1",
 *         sepol.CEXPR_L1H1: "l1",
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_H1L2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_h1) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":301
 *         sepol.CEXPR_L1H2: "l1",
 *         sepol.CEXPR_H1L2: "h1",
 *         sepol.CEXPR_H1H2: "h1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1H1: "l1",
 *         sepol.CEXPR_L2H2: "l2",
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_H1H2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_h1) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":302
 *         sepol.CEXPR_H1L2: "h1",
 *         sepol.CEXPR_H1H2: "h1",
 *         sepol.CEXPR_L1H1: "l1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L2H2: "l2",
 *         sepol.CEXPR_L1L2 + sepol.CEXPR_TARGET: "l2",
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_L1H1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_l1) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":303
 *         sepol.CEXPR_H1H2: "h1",
 *         sepol.CEXPR_L1H1: "l1",
 *         sepol.CEXPR_L2H2: "l2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_L1H2 + sepol.CEXPR_TARGET: "h2",
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_L2H2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_l2) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":304
 *         sepol.CEXPR_L1H1: "l1",
 *         sepol.CEXPR_L2H2: "l2",
 *         sepol.CEXPR_L1L2 + sepol.CEXPR_TARGET: "l2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_H1L2 + sepol.CEXPR_TARGET: "l2",
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_L1L2 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_l2) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":305
 *         sepol.CEXPR_L2H2: "l2",
 *         sepol.CEXPR_L1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_L1H2 + sepol.CEXPR_TARGET: "h2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_H1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_H1H2 + sepol.CEXPR_TARGET: "h2",
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_L1H2 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_h2) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":306
 *         sepol.CEXPR_L1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_L1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_H1L2 + sepol.CEXPR_TARGET: "l2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_H1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_L1H1 + sepol.CEXPR_TARGET: "h1",
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_H1L2 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_l2) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":307
 *         sepol.CEXPR_L1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_H1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_H1H2 + sepol.CEXPR_TARGET: "h2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1H1 + sepol.CEXPR_TARGET: "h1",
 *         sepol.CEXPR_L2H2 + sepol.CEXPR_TARGET: "h2"}
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_H1H2 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_h2) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":308
 *         sepol.CEXPR_H1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_H1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_L1H1 + sepol.CEXPR_TARGET: "h1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L2H2 + sepol.CEXPR_TARGET: "h2"}
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_L1H1 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_h1) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":309
 *         sepol.CEXPR_H1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_L1H1 + sepol.CEXPR_TARGET: "h1",
 *         sepol.CEXPR_L2H2 + sepol.CEXPR_TARGET: "h2"}             # <<<<<<<<<<<<<<
 * 
 *     _role_syms = [sepol.CEXPR_ROLE,
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_L2H2 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_h2) < (0)) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode, __pyx_mstate_global->__pyx_n_u_sym_to_text, __pyx_t_5) < (0)) __PYX_ERR(2, 288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/constraint.pxi":311
 *         sepol.CEXPR_L2H2 + sepol.CEXPR_TARGET: "h2"}
 * 
 *     _role_syms = [sepol.CEXPR_ROLE,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]
*/
  __pyx_t_5 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_ROLE); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "setools/policyrep/constraint.pxi":312
 * 
 *     _role_syms = [sepol.CEXPR_ROLE,
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_TARGET,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_ROLE + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/constraint.pxi":313
 *     _role_syms = [sepol.CEXPR_ROLE,
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]             # <<<<<<<<<<<<<<
 * 
 *     _type_syms = [sepol.CEXPR_TYPE,
*/
  __pyx_t_6 = __Pyx_PyLong_From_int((CEXPR_ROLE + CEXPR_XTARGET)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);

  /* "setools/policyrep/constraint.pxi":311
 *         sepol.CEXPR_L2H2 + sepol.CEXPR_TARGET: "h2"}
 * 
 *     _role_syms = [sepol.CEXPR_ROLE,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]
*/
  __pyx_t_9 = __Pyx_PyList_Pack(3, __pyx_t_5, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode, __pyx_mstate_global->__pyx_n_u_role_syms, __pyx_t_9) < (0)) __PYX_ERR(2, 311, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/constraint.pxi":315
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]
 * 
 *     _type_syms = [sepol.CEXPR_TYPE,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_TYPE); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);

  /* "setools/policyrep/constraint.pxi":316
 * 
 *     _type_syms = [sepol.CEXPR_TYPE,
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_TARGET,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]
 * 
*/
  __pyx_t_6 = __Pyx_PyLong_From_int((CEXPR_TYPE + CEXPR_TARGET)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);

  /* "setools/policyrep/constraint.pxi":317
 *     _type_syms = [sepol.CEXPR_TYPE,
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]             # <<<<<<<<<<<<<<
 * 
 *     _user_syms = [sepol.CEXPR_USER,
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_TYPE + CEXPR_XTARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/constraint.pxi":315
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]
 * 
 *     _type_syms = [sepol.CEXPR_TYPE,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]
*/
  __pyx_t_5 = __Pyx_PyList_Pack(3, __pyx_t_9, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode, __pyx_mstate_global->__pyx_n_u_type_syms, __pyx_t_5) < (0)) __PYX_ERR(2, 315, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/constraint.pxi":319
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]
 * 
 *     _user_syms = [sepol.CEXPR_USER,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_USER + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_USER + sepol.CEXPR_XTARGET]
*/
  __pyx_t_5 = __Pyx_PyLong_From___pyx_anon_enum(CEXPR_USER); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "setools/policyrep/constraint.pxi":320
 * 
 *     _user_syms = [sepol.CEXPR_USER,
 *                   sepol.CEXPR_USER + sepol.CEXPR_TARGET,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_USER + sepol.CEXPR_XTARGET]
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_int((CEXPR_USER + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/constraint.pxi":321
 *     _user_syms = [sepol.CEXPR_USER,
 *                   sepol.CEXPR_USER + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_USER + sepol.CEXPR_XTARGET]             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __pyx_t_6 = __Pyx_PyLong_From_int((CEXPR_USER + CEXPR_XTARGET)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);

  /* "setools/policyrep/constraint.pxi":319
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]
 * 
 *     _user_syms = [sepol.CEXPR_USER,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_USER + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_USER + sepol.CEXPR_XTARGET]
*/
  __pyx_t_9 = __Pyx_PyList_Pack(3, __pyx_t_5, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode, __pyx_mstate_global->__pyx_n_u_user_syms, __pyx_t_9) < (0)) __PYX_ERR(2, 319, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/constraint.pxi":414
 *         return self._symbol_type
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18ConstraintExprNode_9statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintExprNode_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(2, 414, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18ConstraintExprNode_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintExprNode___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x74e0c7a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConstraintExprNode__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18ConstraintExprNode_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintExprNode___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprNode, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/constraint.pxi":460
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18ConstraintIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_9) < (0)) __PYX_ERR(2, 460, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18ConstraintIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintIterator___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18ConstraintIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintIterator___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_21ValidatetransIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ValidatetransIterator___reduce_c, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_21ValidatetransIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ValidatetransIterator___setstate, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/constraint.pxi":530
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22ConstraintExprIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintExprIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConstraintExprIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_9) < (0)) __PYX_ERR(2, 530, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22ConstraintExprIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintExprIterator___reduce, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22ConstraintExprIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConstraintExprIterator___setstat, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/context.pxi":84
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Context_3statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Context_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(9, 84, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Context_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Context___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Context, (type(self), 0x50dd136, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Context__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Context_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Context___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Context, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/default.pxi":10
 * # Typing and enums
 * #
 * AnyDefault = Union[Default, DefaultRange]             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Union); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = PyTuple_Pack(2, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Default), ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_DefaultRange)); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AnyDefault, __pyx_t_2) < (0)) __PYX_ERR(10, 10, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":13
 * 
 * 
 * class DefaultRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default rule types."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_DefaultRuletype, __pyx_mstate_global->__pyx_n_u_DefaultRuletype, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Enumeration_of_default_rule_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__pyx_t_2 != __pyx_t_6) {
    if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_t_6) < 0))) __PYX_ERR(10, 13, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "setools/policyrep/default.pxi":17
 *     """Enumeration of default rule types."""
 * 
 *     default_user = 1             # <<<<<<<<<<<<<<
 *     default_role = 2
 *     default_type = 3
*/
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_default_user, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(10, 17, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":18
 * 
 *     default_user = 1
 *     default_role = 2             # <<<<<<<<<<<<<<
 *     default_type = 3
 *     default_range = 4
*/
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_default_role, __pyx_mstate_global->__pyx_int_2) < (0)) __PYX_ERR(10, 18, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":19
 *     default_user = 1
 *     default_role = 2
 *     default_type = 3             # <<<<<<<<<<<<<<
 *     default_range = 4
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_default_type, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(10, 19, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":20
 *     default_role = 2
 *     default_type = 3
 *     default_range = 4             # <<<<<<<<<<<<<<
 * 
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_default_range, __pyx_mstate_global->__pyx_int_4) < (0)) __PYX_ERR(10, 20, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":13
 * 
 * 
 * class DefaultRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default rule types."""
*/
  __pyx_t_6 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_DefaultRuletype, __pyx_t_2, __pyx_t_5, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DefaultRuletype, __pyx_t_6) < (0)) __PYX_ERR(10, 13, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":23
 * 
 * 
 * class DefaultValue(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default values."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_DefaultValue, __pyx_mstate_global->__pyx_n_u_DefaultValue, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Enumeration_of_default_values); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__pyx_t_2 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(10, 23, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/default.pxi":27
 *     """Enumeration of default values."""
 * 
 *     source = sepol.DEFAULT_SOURCE             # <<<<<<<<<<<<<<
 *     target = sepol.DEFAULT_TARGET
 *     glblub = sepol.DEFAULT_GLBLUB
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_SOURCE); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_source, __pyx_t_9) < (0)) __PYX_ERR(10, 27, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/default.pxi":28
 * 
 *     source = sepol.DEFAULT_SOURCE
 *     target = sepol.DEFAULT_TARGET             # <<<<<<<<<<<<<<
 *     glblub = sepol.DEFAULT_GLBLUB
 * 
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_TARGET); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_target, __pyx_t_9) < (0)) __PYX_ERR(10, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/default.pxi":29
 *     source = sepol.DEFAULT_SOURCE
 *     target = sepol.DEFAULT_TARGET
 *     glblub = sepol.DEFAULT_GLBLUB             # <<<<<<<<<<<<<<
 * 
 *     @classmethod
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(DEFAULT_GLBLUB); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_glblub, __pyx_t_9) < (0)) __PYX_ERR(10, 29, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/default.pxi":31
 *     glblub = sepol.DEFAULT_GLBLUB
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12DefaultValue_1from_default_range, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_mstate_global->__pyx_n_u_DefaultValue_from_default_range, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __pyx_t_7 = __Pyx_Method_ClassMethod(__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_from_default_range, __pyx_t_7) < (0)) __PYX_ERR(10, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/default.pxi":23
 * 
 * 
 * class DefaultValue(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default values."""
*/
  __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DefaultValue, __pyx_t_2, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DefaultValue, __pyx_t_7) < (0)) __PYX_ERR(10, 23, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":47
 * 
 * 
 * class DefaultRangeValue(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default range values."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_DefaultRangeValue, __pyx_mstate_global->__pyx_n_u_DefaultRangeValue, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Enumeration_of_default_range_val); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_2 != __pyx_t_5) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_5) < 0))) __PYX_ERR(10, 47, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/default.pxi":51
 *     """Enumeration of default range values."""
 * 
 *     low = 1             # <<<<<<<<<<<<<<
 *     high = 2
 *     low_high = 3
*/
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_low, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(10, 51, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":52
 * 
 *     low = 1
 *     high = 2             # <<<<<<<<<<<<<<
 *     low_high = 3
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_high, __pyx_mstate_global->__pyx_int_2) < (0)) __PYX_ERR(10, 52, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":53
 *     low = 1
 *     high = 2
 *     low_high = 3             # <<<<<<<<<<<<<<
 * 
 *     @classmethod
*/
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_low_high, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(10, 53, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":55
 *     low_high = 3
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_17DefaultRangeValue_1from_default_range, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_mstate_global->__pyx_n_u_DefaultRangeValue_from_default_r, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  __pyx_t_9 = __Pyx_Method_ClassMethod(__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_from_default_range, __pyx_t_9) < (0)) __PYX_ERR(10, 55, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/default.pxi":47
 * 
 * 
 * class DefaultRangeValue(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default range values."""
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_DefaultRangeValue, __pyx_t_2, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DefaultRangeValue, __pyx_t_9) < (0)) __PYX_ERR(10, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":145
 *         return self._default
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.tclass} {self.default};"
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Default_7statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Default_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Default, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_2) < (0)) __PYX_ERR(10, 145, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Default_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Default___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Default, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Default, (type(self), 0x685e83e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Default__set_state(self, __pyx_state)
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Default_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Default___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Default, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":168
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if self.default_range:
 *             return f"{self.ruletype} {self.tclass} {self.default} {self.default_range};"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12DefaultRange_7statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DefaultRange_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_DefaultRange, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_2) < (0)) __PYX_ERR(10, 168, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12DefaultRange_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DefaultRange___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_DefaultRange, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xe3c0426, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_DefaultRange__set_state(self, __pyx_state)
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12DefaultRange_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DefaultRange___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_DefaultRange, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/filecontexts.pxi":3
 * # SPDX-License-Identifier: LGPL-2.1-only
 * 
 * class FileContextsFiletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of file types in FileContexts."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_FileContextsFiletype, __pyx_mstate_global->__pyx_n_u_FileContextsFiletype, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Enumeration_of_file_types_in_Fil); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_2 != __pyx_t_6) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_6) < 0))) __PYX_ERR(11, 3, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "setools/policyrep/filecontexts.pxi":7
 *     """Enumeration of file types in FileContexts."""
 * 
 *     any = 0             # <<<<<<<<<<<<<<
 *     dir = 1
 *     chr_file = 2
*/
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_any, __pyx_mstate_global->__pyx_int_0) < (0)) __PYX_ERR(11, 7, __pyx_L1_error)

  /* "setools/policyrep/filecontexts.pxi":8
 * 
 *     any = 0
 *     dir = 1             # <<<<<<<<<<<<<<
 *     chr_file = 2
 *     blk_file = 3
*/
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_dir, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(11, 8, __pyx_L1_error)

  /* "setools/policyrep/filecontexts.pxi":9
 *     any = 0
 *     dir = 1
 *     chr_file = 2             # <<<<<<<<<<<<<<
 *     blk_file = 3
 *     sock_file = 4
*/
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_chr_file, __pyx_mstate_global->__pyx_int_2) < (0)) __PYX_ERR(11, 9, __pyx_L1_error)

  /* "setools/policyrep/filecontexts.pxi":10
 *     dir = 1
 *     chr_file = 2
 *     blk_file = 3             # <<<<<<<<<<<<<<
 *     sock_file = 4
 *     fifo_file = 5
*/
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_blk_file, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(11, 10, __pyx_L1_error)

  /* "setools/policyrep/filecontexts.pxi":11
 *     chr_file = 2
 *     blk_file = 3
 *     sock_file = 4             # <<<<<<<<<<<<<<
 *     fifo_file = 5
 *     lnk_file = 6
*/
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_sock_file, __pyx_mstate_global->__pyx_int_4) < (0)) __PYX_ERR(11, 11, __pyx_L1_error)

  /* "setools/policyrep/filecontexts.pxi":12
 *     blk_file = 3
 *     sock_file = 4
 *     fifo_file = 5             # <<<<<<<<<<<<<<
 *     lnk_file = 6
 *     file = 7
*/
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_fifo_file, __pyx_mstate_global->__pyx_int_5) < (0)) __PYX_ERR(11, 12, __pyx_L1_error)

  /* "setools/policyrep/filecontexts.pxi":13
 *     sock_file = 4
 *     fifo_file = 5
 *     lnk_file = 6             # <<<<<<<<<<<<<<
 *     file = 7
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_lnk_file, __pyx_mstate_global->__pyx_int_6) < (0)) __PYX_ERR(11, 13, __pyx_L1_error)

  /* "setools/policyrep/filecontexts.pxi":14
 *     fifo_file = 5
 *     lnk_file = 6
 *     file = 7             # <<<<<<<<<<<<<<
 * 
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_file, __pyx_mstate_global->__pyx_int_7) < (0)) __PYX_ERR(11, 14, __pyx_L1_error)

  /* "setools/policyrep/filecontexts.pxi":3
 * # SPDX-License-Identifier: LGPL-2.1-only
 * 
 * class FileContextsFiletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of file types in FileContexts."""
*/
  __pyx_t_6 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_FileContextsFiletype, __pyx_t_2, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FileContextsFiletype, __pyx_t_6) < (0)) __PYX_ERR(11, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/filecontexts.pxi":54
 *             selinux.selabel_close(self.handle)
 * 
 *     def lookup(self, path: str, filetype: FileContextsFiletype = FileContextsFiletype.any):             # <<<<<<<<<<<<<<
 *         """Look up a path in the file_contexts."""
 *         cdef char *ctx
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_FileContextsFiletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_any); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_mstate_global->__pyx_k__15 = __pyx_t_7;
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_FileContextsFiletype); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_any); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_path, __pyx_mstate_global->__pyx_n_u_str_2) < (0)) __PYX_ERR(11, 54, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_filetype, __pyx_mstate_global->__pyx_n_u_FileContextsFiletype) < (0)) __PYX_ERR(11, 54, __pyx_L1_error)
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12FileContexts_5lookup, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileContexts_lookup, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_7);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_9, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileContexts, __pyx_mstate_global->__pyx_n_u_lookup, __pyx_t_9) < (0)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12FileContexts_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileContexts___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12FileContexts_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileContexts___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/fscontext.pxi":10
 * # Classes
 * #
 * class FSUseRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of fs_use_* rule types."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_FSUseRuletype, __pyx_mstate_global->__pyx_n_u_FSUseRuletype, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Enumeration_of_fs_use__rule_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__pyx_t_9 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(12, 10, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/fscontext.pxi":16
 *     # only supports these three.
 * 
 *     fs_use_xattr = sepol.SECURITY_FS_USE_XATTR             # <<<<<<<<<<<<<<
 *     fs_use_trans = sepol.SECURITY_FS_USE_TRANS
 *     fs_use_task = sepol.SECURITY_FS_USE_TASK
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(SECURITY_FS_USE_XATTR); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fs_use_xattr, __pyx_t_2) < (0)) __PYX_ERR(12, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/fscontext.pxi":17
 * 
 *     fs_use_xattr = sepol.SECURITY_FS_USE_XATTR
 *     fs_use_trans = sepol.SECURITY_FS_USE_TRANS             # <<<<<<<<<<<<<<
 *     fs_use_task = sepol.SECURITY_FS_USE_TASK
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(SECURITY_FS_USE_TRANS); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fs_use_trans, __pyx_t_2) < (0)) __PYX_ERR(12, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/fscontext.pxi":18
 *     fs_use_xattr = sepol.SECURITY_FS_USE_XATTR
 *     fs_use_trans = sepol.SECURITY_FS_USE_TRANS
 *     fs_use_task = sepol.SECURITY_FS_USE_TASK             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(SECURITY_FS_USE_TASK); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fs_use_task, __pyx_t_2) < (0)) __PYX_ERR(12, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/fscontext.pxi":10
 * # Classes
 * #
 * class FSUseRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of fs_use_* rule types."""
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_FSUseRuletype, __pyx_t_9, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FSUseRuletype, __pyx_t_2) < (0)) __PYX_ERR(12, 10, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/fscontext.pxi":46
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.fs} {self.context};"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5FSUse_5statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FSUse_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FSUse, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(12, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5FSUse_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FSUse___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FSUse, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdf395a0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FSUse__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5FSUse_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FSUse___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FSUse, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/fscontext.pxi":63
 *     """
 * 
 *     _filetype_to_text = {0: "",             # <<<<<<<<<<<<<<
 *                          S_IFBLK: "-b",
 *                          S_IFCHR: "-c",
*/
  __pyx_t_9 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_kp_u__23) < (0)) __PYX_ERR(12, 63, __pyx_L1_error)

  /* "setools/policyrep/fscontext.pxi":64
 * 
 *     _filetype_to_text = {0: "",
 *                          S_IFBLK: "-b",             # <<<<<<<<<<<<<<
 *                          S_IFCHR: "-c",
 *                          S_IFDIR: "-d",
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFBLK); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_t_7, __pyx_mstate_global->__pyx_kp_u_b) < (0)) __PYX_ERR(12, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":65
 *     _filetype_to_text = {0: "",
 *                          S_IFBLK: "-b",
 *                          S_IFCHR: "-c",             # <<<<<<<<<<<<<<
 *                          S_IFDIR: "-d",
 *                          S_IFIFO: "-p",
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFCHR); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_t_7, __pyx_mstate_global->__pyx_kp_u_c_2) < (0)) __PYX_ERR(12, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":66
 *                          S_IFBLK: "-b",
 *                          S_IFCHR: "-c",
 *                          S_IFDIR: "-d",             # <<<<<<<<<<<<<<
 *                          S_IFIFO: "-p",
 *                          S_IFREG: "--",
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFDIR); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_t_7, __pyx_mstate_global->__pyx_kp_u_d) < (0)) __PYX_ERR(12, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":67
 *                          S_IFCHR: "-c",
 *                          S_IFDIR: "-d",
 *                          S_IFIFO: "-p",             # <<<<<<<<<<<<<<
 *                          S_IFREG: "--",
 *                          S_IFLNK: "-l",
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFIFO); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_t_7, __pyx_mstate_global->__pyx_kp_u_p) < (0)) __PYX_ERR(12, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":68
 *                          S_IFDIR: "-d",
 *                          S_IFIFO: "-p",
 *                          S_IFREG: "--",             # <<<<<<<<<<<<<<
 *                          S_IFLNK: "-l",
 *                          S_IFSOCK: "-s"}
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFREG); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_t_7, __pyx_mstate_global->__pyx_kp_u__41) < (0)) __PYX_ERR(12, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":69
 *                          S_IFIFO: "-p",
 *                          S_IFREG: "--",
 *                          S_IFLNK: "-l",             # <<<<<<<<<<<<<<
 *                          S_IFSOCK: "-s"}
 * 
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFLNK); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_t_7, __pyx_mstate_global->__pyx_kp_u_l) < (0)) __PYX_ERR(12, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":70
 *                          S_IFREG: "--",
 *                          S_IFLNK: "-l",
 *                          S_IFSOCK: "-s"}             # <<<<<<<<<<<<<<
 * 
 *     _sclass_to_stat = {"": 0,
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFSOCK); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_t_7, __pyx_mstate_global->__pyx_kp_u_s) < (0)) __PYX_ERR(12, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype, __pyx_mstate_global->__pyx_n_u_filetype_to_text, __pyx_t_9) < (0)) __PYX_ERR(12, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/fscontext.pxi":72
 *                          S_IFSOCK: "-s"}
 * 
 *     _sclass_to_stat = {"": 0,             # <<<<<<<<<<<<<<
 *                        "dir": S_IFDIR,
 *                        "file": S_IFREG,
*/
  __pyx_t_9 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_kp_u__23, __pyx_mstate_global->__pyx_int_0) < (0)) __PYX_ERR(12, 72, __pyx_L1_error)

  /* "setools/policyrep/fscontext.pxi":73
 * 
 *     _sclass_to_stat = {"": 0,
 *                        "dir": S_IFDIR,             # <<<<<<<<<<<<<<
 *                        "file": S_IFREG,
 *                        "lnk_file": S_IFLNK,
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFDIR); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_dir, __pyx_t_7) < (0)) __PYX_ERR(12, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":74
 *     _sclass_to_stat = {"": 0,
 *                        "dir": S_IFDIR,
 *                        "file": S_IFREG,             # <<<<<<<<<<<<<<
 *                        "lnk_file": S_IFLNK,
 *                        "fifo_file": S_IFIFO,
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFREG); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_file, __pyx_t_7) < (0)) __PYX_ERR(12, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":75
 *                        "dir": S_IFDIR,
 *                        "file": S_IFREG,
 *                        "lnk_file": S_IFLNK,             # <<<<<<<<<<<<<<
 *                        "fifo_file": S_IFIFO,
 *                        "sock_file": S_IFSOCK,
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFLNK); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_lnk_file, __pyx_t_7) < (0)) __PYX_ERR(12, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":76
 *                        "file": S_IFREG,
 *                        "lnk_file": S_IFLNK,
 *                        "fifo_file": S_IFIFO,             # <<<<<<<<<<<<<<
 *                        "sock_file": S_IFSOCK,
 *                        "blk_file": S_IFBLK,
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFIFO); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_fifo_file, __pyx_t_7) < (0)) __PYX_ERR(12, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":77
 *                        "lnk_file": S_IFLNK,
 *                        "fifo_file": S_IFIFO,
 *                        "sock_file": S_IFSOCK,             # <<<<<<<<<<<<<<
 *                        "blk_file": S_IFBLK,
 *                        "chr_file": S_IFCHR}
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFSOCK); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_sock_file, __pyx_t_7) < (0)) __PYX_ERR(12, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":78
 *                        "fifo_file": S_IFIFO,
 *                        "sock_file": S_IFSOCK,
 *                        "blk_file": S_IFBLK,             # <<<<<<<<<<<<<<
 *                        "chr_file": S_IFCHR}
 * 
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFBLK); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_blk_file, __pyx_t_7) < (0)) __PYX_ERR(12, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/fscontext.pxi":79
 *                        "sock_file": S_IFSOCK,
 *                        "blk_file": S_IFBLK,
 *                        "chr_file": S_IFCHR}             # <<<<<<<<<<<<<<
 * 
 *     @classmethod
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(S_IFCHR); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_chr_file, __pyx_t_7) < (0)) __PYX_ERR(12, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype, __pyx_mstate_global->__pyx_n_u_sclass_to_stat, __pyx_t_9) < (0)) __PYX_ERR(12, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/fscontext.pxi":81
 *                        "chr_file": S_IFCHR}
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def from_class(cls, tclass: ObjClass | str) -> GenfsFiletype:
 *         """Create a GenfsFiletype from an object class."""
*/
  __pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_tclass, __pyx_mstate_global->__pyx_kp_u_ObjClass_str) < (0)) __PYX_ERR(12, 81, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_n_u_GenfsFiletype) < (0)) __PYX_ERR(12, 81, __pyx_L1_error)
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13GenfsFiletype_1from_class, __Pyx_CYFUNCTION_CLASSMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_GenfsFiletype_from_class, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_7, __pyx_t_9);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype, __pyx_mstate_global->__pyx_n_u_from_class, __pyx_t_7) < (0)) __PYX_ERR(12, 81, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_GetNameInClass(__pyx_t_7, (PyObject*)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype, __pyx_mstate_global->__pyx_n_u_from_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = __Pyx_Method_ClassMethod(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype, __pyx_mstate_global->__pyx_n_u_from_class, __pyx_t_9) < (0)) __PYX_ERR(12, 81, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13GenfsFiletype_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_GenfsFiletype___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GenfsFiletype__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13GenfsFiletype_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_GenfsFiletype___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_GenfsFiletype, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/fscontext.pxi":135
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"genfscon {self.fs} {self.path} {self.filetype} {self.context}"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Genfscon_5statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Genfscon_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Genfscon, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(12, 135, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Genfscon_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Genfscon___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Genfscon, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xe199f36, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Genfscon__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Genfscon_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Genfscon___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Genfscon, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13FSUseIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FSUseIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13FSUseIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FSUseIterator___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_16GenfsconIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_GenfsconIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_16GenfsconIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_GenfsconIterator___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_24GenfsconOcontextIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_GenfsconOcontextIterator___reduc, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_24GenfsconOcontextIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_GenfsconOcontextIterator___setst, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/initsid.pxi":11
 * #
 * # Binary policy does not contain the SID names
 * SELINUX_SIDNAMES = ("undefined", "kernel", "security", "unlabeled", "fs", "file", "file_labels",             # <<<<<<<<<<<<<<
 *     "init", "any_socket", "port", "netif", "netmsg", "node", "igmp_packet", "icmp_socket",
 *     "tcp_socket", "sysctl_modprobe", "sysctl", "sysctl_fs", "sysctl_kernel", "sysctl_net",
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SELINUX_SIDNAMES, __pyx_mstate_global->__pyx_tuple[1]) < (0)) __PYX_ERR(13, 11, __pyx_L1_error)

  /* "setools/policyrep/initsid.pxi":17
 * 
 * 
 * XEN_SIDNAMES = ("xen", "dom0", "domxen", "domio", "unlabeled", "security", "irq", "iomem", "ioport",             # <<<<<<<<<<<<<<
 *     "device", "domU", "domDM")
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_XEN_SIDNAMES, __pyx_mstate_global->__pyx_tuple[2]) < (0)) __PYX_ERR(13, 17, __pyx_L1_error)

  /* "setools/policyrep/initsid.pxi":52
 *         return self.name
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"sid {self.name} {self.context}"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10InitialSID_3statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_InitialSID_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_9)) __PYX_ERR(13, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_InitialSID, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(13, 52, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10InitialSID_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_InitialSID___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_InitialSID, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InitialSID, (type(self), 0x00f465e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InitialSID__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10InitialSID_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_InitialSID___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_InitialSID, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18InitialSIDIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_InitialSIDIterator___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18InitialSIDIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_InitialSIDIterator___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":8
 * # pylint: disable=protected-access
 * 
 * cdef object _cat_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * cdef object _sens_cache = WeakKeyDefaultDict(dict)
 * cdef object _leveldecl_cache = WeakKeyDefaultDict(dict)
*/
  __pyx_t_7 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, ((PyObject *)(&PyDict_Type))};
    __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__cat_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__cat_cache, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":9
 * 
 * cdef object _cat_cache = WeakKeyDefaultDict(dict)
 * cdef object _sens_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * cdef object _leveldecl_cache = WeakKeyDefaultDict(dict)
 * 
*/
  __pyx_t_6 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, ((PyObject *)(&PyDict_Type))};
    __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__sens_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__sens_cache, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":10
 * cdef object _cat_cache = WeakKeyDefaultDict(dict)
 * cdef object _sens_cache = WeakKeyDefaultDict(dict)
 * cdef object _leveldecl_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_7 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, ((PyObject *)(&PyDict_Type))};
    __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__leveldecl_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__leveldecl_cache, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":65
 *         return self._value < other._value
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this category."""
 *         return iter(self._aliases)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Category_5aliases, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Category_aliases, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Category, __pyx_mstate_global->__pyx_n_u_aliases, __pyx_t_9) < (0)) __PYX_ERR(3, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":69
 *         return iter(self._aliases)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             str stmt
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Category_7statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Category_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Category, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(3, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Category_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Category___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Category, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Category, (type(self), 0x249d746, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Category__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Category_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Category___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Category, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":128
 *         return self._value < other._value
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this sensitivity."""
 *         return iter(self._aliases)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Sensitivity_11aliases, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Sensitivity_aliases, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity, __pyx_mstate_global->__pyx_n_u_aliases, __pyx_t_9) < (0)) __PYX_ERR(3, 128, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":132
 *         return iter(self._aliases)
 * 
 *     def level_decl(self):             # <<<<<<<<<<<<<<
 *         """Get the level declaration corresponding to this sensitivity."""
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Sensitivity_13level_decl, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Sensitivity_level_decl, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity, __pyx_mstate_global->__pyx_n_u_level_decl, __pyx_t_9) < (0)) __PYX_ERR(3, 132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":140
 *         return self._leveldecl
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             str stmt
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Sensitivity_15statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Sensitivity_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(3, 140, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Sensitivity_17__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Sensitivity___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xbbab436, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Sensitivity__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11Sensitivity_19__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Sensitivity___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Sensitivity, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":185
 *         return lvl
 * 
 *     def categories(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generator that yields all individual categories for this level.
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12BaseMLSLevel_3categories, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseMLSLevel_categories, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseMLSLevel, __pyx_mstate_global->__pyx_n_u_categories, __pyx_t_9) < (0)) __PYX_ERR(3, 185, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12BaseMLSLevel_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseMLSLevel___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseMLSLevel, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseMLSLevel__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12BaseMLSLevel_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseMLSLevel___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseMLSLevel, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":253
 *         return self.sensitivity < other.sensitivity
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"level {self};"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9LevelDecl_13statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LevelDecl_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDecl, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(3, 253, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9LevelDecl_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LevelDecl___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDecl, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_LevelDecl__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9LevelDecl_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LevelDecl___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDecl, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":377
 *         return not (self >= other or self <= other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5Level_15statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Level_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(3, 377, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5Level_17__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Level___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Level, (type(self), 0x18b60c0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Level__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5Level_19__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Level___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Level, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":475
 *         return not (self >= other or self <= other)
 * 
 *     def dom(self, other):             # <<<<<<<<<<<<<<
 *         """Returns if self dominates other."""
 *         return self >= other
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5Range_19dom, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Range_dom, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range, __pyx_mstate_global->__pyx_n_u_dom, __pyx_t_9) < (0)) __PYX_ERR(3, 475, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":479
 *         return self >= other
 * 
 *     def domby(self, other):             # <<<<<<<<<<<<<<
 *         """Returns if self is dominated by other."""
 *         return self <= other
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5Range_21domby, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Range_domby, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range, __pyx_mstate_global->__pyx_n_u_domby, __pyx_t_9) < (0)) __PYX_ERR(3, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":483
 *         return self <= other
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5Range_23statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Range_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(3, 483, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5Range_25__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Range___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Range, (type(self), 0x472fd68, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Range__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5Range_27__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Range___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Range, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":532
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_23CategoryHashtabIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CategoryHashtabIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_9) < (0)) __PYX_ERR(3, 532, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_23CategoryHashtabIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CategoryHashtabIterator___reduce, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_23CategoryHashtabIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CategoryHashtabIterator___setsta, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":589
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_26SensitivityHashtabIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SensitivityHashtabIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_9) < (0)) __PYX_ERR(3, 589, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_26SensitivityHashtabIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SensitivityHashtabIterator___red, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_26SensitivityHashtabIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SensitivityHashtabIterator___set, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mls.pxi":646
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_24LevelDeclHashtabIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LevelDeclHashtabIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_9) < (0)) __PYX_ERR(3, 646, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_24LevelDeclHashtabIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LevelDeclHashtabIterator___reduc, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_24LevelDeclHashtabIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LevelDeclHashtabIterator___setst, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_23CategoryEbitmapIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CategoryEbitmapIterator___reduce, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_23CategoryEbitmapIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CategoryEbitmapIterator___setsta, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mlsrule.pxi":8
 * 
 * 
 * class MLSRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """An enumeration of MLS rule types."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_9)) __PYX_ERR(14, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(14, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(14, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(14, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_MLSRuletype, __pyx_mstate_global->__pyx_n_u_MLSRuletype, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_An_enumeration_of_MLS_rule_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_9 != __pyx_t_6) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_6) < 0))) __PYX_ERR(14, 8, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "setools/policyrep/mlsrule.pxi":12
 *     """An enumeration of MLS rule types."""
 * 
 *     range_transition = 1             # <<<<<<<<<<<<<<
 * 
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_range_transition, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(14, 12, __pyx_L1_error)

  /* "setools/policyrep/mlsrule.pxi":8
 * 
 * 
 * class MLSRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """An enumeration of MLS rule types."""
*/
  __pyx_t_6 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_MLSRuletype, __pyx_t_9, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(14, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MLSRuletype, __pyx_t_6) < (0)) __PYX_ERR(14, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mlsrule.pxi":49
 *         return self.rng
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef MLSRule r
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7MLSRule_5expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MLSRule_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_9)) __PYX_ERR(14, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_MLSRule, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_9) < (0)) __PYX_ERR(14, 49, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/mlsrule.pxi":69
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7MLSRule_8statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MLSRule_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_9)) __PYX_ERR(14, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_MLSRule, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(14, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7MLSRule_10__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MLSRule___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_MLSRule, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x4c51559, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MLSRule__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7MLSRule_12__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MLSRule___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_MLSRule, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15MLSRuleIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MLSRuleIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15MLSRuleIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MLSRuleIterator___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/netcontext.pxi":8
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)
 * class IbpkeyconRange:             # <<<<<<<<<<<<<<
 * 
 *     """A range of Infiniband partition keys."""
*/
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_A_range_of_Infiniband_partition); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_low, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(15, 8, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_high, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(15, 8, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_mstate_global->__pyx_kp_u_dataclasses_ClassVar_int) < (0)) __PYX_ERR(15, 8, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_mstate_global->__pyx_kp_u_dataclasses_ClassVar_int) < (0)) __PYX_ERR(15, 8, __pyx_L1_error)
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_annotations, __pyx_t_7) < (0)) __PYX_ERR(15, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":15
 *     high: int
 * 
 *     MIN: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0x0001)             # <<<<<<<<<<<<<<
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_field); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_2, NULL};
    __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_init_2, Py_False, __pyx_t_6, __pyx_callargs+1, 0) < (0)) __PYX_ERR(15, 15, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_1, __pyx_t_6, __pyx_callargs+1, 1) < (0)) __PYX_ERR(15, 15, __pyx_L1_error)
    __pyx_t_7 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_7) < (0)) __PYX_ERR(15, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":16
 * 
 *     MIN: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0x0001)
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)             # <<<<<<<<<<<<<<
 * 
 *     def __post_init__(self):
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_field); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_5, NULL};
    __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_init_2, Py_False, __pyx_t_6, __pyx_callargs+1, 0) < (0)) __PYX_ERR(15, 16, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_65535, __pyx_t_6, __pyx_callargs+1, 1) < (0)) __PYX_ERR(15, 16, __pyx_L1_error)
    __pyx_t_7 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_7) < (0)) __PYX_ERR(15, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":18
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < IbpkeyconRange.MIN or self.high < IbpkeyconRange.MIN:
 *             raise ValueError(f"Partition keys must be >= {IbpkeyconRange.MIN:0=#6x}: {self}")
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14IbpkeyconRange_1__post_init__, 0, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange___post_init, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_post_init, __pyx_t_7) < (0)) __PYX_ERR(15, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":28
 *             raise ValueError(f"The low partition key must be <= the high partition key: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14IbpkeyconRange_3__str__, 0, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange___str, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_7) < (0)) __PYX_ERR(15, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":7
 * #
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)             # <<<<<<<<<<<<<<
 * class IbpkeyconRange:
 * 
*/
  __pyx_t_2 = NULL;
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_dataclass); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 3 : 0)] = {__pyx_t_5, NULL};
    __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eq_2, Py_True, __pyx_t_8, __pyx_callargs+1, 0) < (0)) __PYX_ERR(15, 7, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_order, Py_True, __pyx_t_8, __pyx_callargs+1, 1) < (0)) __PYX_ERR(15, 7, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_frozen, Py_True, __pyx_t_8, __pyx_callargs+1, 2) < (0)) __PYX_ERR(15, 7, __pyx_L1_error)
    __pyx_t_6 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }

  /* "setools/policyrep/netcontext.pxi":8
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)
 * class IbpkeyconRange:             # <<<<<<<<<<<<<<
 * 
 *     """A range of Infiniband partition keys."""
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_IbpkeyconRange, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IbpkeyconRange, __pyx_t_7) < (0)) __PYX_ERR(15, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/netcontext.pxi":36
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)
 * class PortconRange:             # <<<<<<<<<<<<<<
 * 
 *     """A range of IP ports."""
*/
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_PortconRange, __pyx_mstate_global->__pyx_n_u_PortconRange, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_A_range_of_IP_ports); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_low, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(15, 36, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_high, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(15, 36, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_mstate_global->__pyx_kp_u_dataclasses_ClassVar_int) < (0)) __PYX_ERR(15, 36, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_mstate_global->__pyx_kp_u_dataclasses_ClassVar_int) < (0)) __PYX_ERR(15, 36, __pyx_L1_error)
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_annotations, __pyx_t_7) < (0)) __PYX_ERR(15, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":43
 *     high: int
 * 
 *     MIN: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=1)             # <<<<<<<<<<<<<<
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=65535)
 * 
*/
  __pyx_t_6 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_field); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_6, NULL};
    __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 43, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_init_2, Py_False, __pyx_t_4, __pyx_callargs+1, 0) < (0)) __PYX_ERR(15, 43, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_1, __pyx_t_4, __pyx_callargs+1, 1) < (0)) __PYX_ERR(15, 43, __pyx_L1_error)
    __pyx_t_7 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 43, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_7) < (0)) __PYX_ERR(15, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":44
 * 
 *     MIN: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=1)
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=65535)             # <<<<<<<<<<<<<<
 * 
 *     def __post_init__(self):
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_field); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_2, NULL};
    __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_init_2, Py_False, __pyx_t_4, __pyx_callargs+1, 0) < (0)) __PYX_ERR(15, 44, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_65535, __pyx_t_4, __pyx_callargs+1, 1) < (0)) __PYX_ERR(15, 44, __pyx_L1_error)
    __pyx_t_7 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_7) < (0)) __PYX_ERR(15, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":46
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=65535)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < PortconRange.MIN or self.high < PortconRange.MIN:
 *             raise ValueError(f"Port numbers must be >= {PortconRange.MIN}: {self}")
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12PortconRange_1__post_init__, 0, __pyx_mstate_global->__pyx_n_u_PortconRange___post_init, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_post_init, __pyx_t_7) < (0)) __PYX_ERR(15, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":56
 *             raise ValueError(f"The low port must be <= the high port: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return str(self.low)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12PortconRange_3__str__, 0, __pyx_mstate_global->__pyx_n_u_PortconRange___str, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_7) < (0)) __PYX_ERR(15, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":35
 * 
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)             # <<<<<<<<<<<<<<
 * class PortconRange:
 * 
*/
  __pyx_t_6 = NULL;
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_dataclass); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 3 : 0)] = {__pyx_t_2, NULL};
    __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eq_2, Py_True, __pyx_t_8, __pyx_callargs+1, 0) < (0)) __PYX_ERR(15, 35, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_order, Py_True, __pyx_t_8, __pyx_callargs+1, 1) < (0)) __PYX_ERR(15, 35, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_frozen, Py_True, __pyx_t_8, __pyx_callargs+1, 2) < (0)) __PYX_ERR(15, 35, __pyx_L1_error)
    __pyx_t_4 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }

  /* "setools/policyrep/netcontext.pxi":36
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)
 * class PortconRange:             # <<<<<<<<<<<<<<
 * 
 *     """A range of IP ports."""
*/
  __pyx_t_5 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_PortconRange, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};
    __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PortconRange, __pyx_t_7) < (0)) __PYX_ERR(15, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/netcontext.pxi":92
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"ibendportcon {self.name} {self.port} {self.context}"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12Ibendportcon_5statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Ibendportcon_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibendportcon, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(15, 92, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12Ibendportcon_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Ibendportcon___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibendportcon, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd3c8841, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ibendportcon__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12Ibendportcon_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Ibendportcon___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibendportcon, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/netcontext.pxi":150
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"ibpkeycon {self.subnet_prefix} {self.pkeys} {self.context}"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9Ibpkeycon_5statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Ibpkeycon_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibpkeycon, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(15, 150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9Ibpkeycon_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Ibpkeycon___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibpkeycon, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0xd4355e5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ibpkeycon__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9Ibpkeycon_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Ibpkeycon___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ibpkeycon, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/netcontext.pxi":180
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"netifcon {self.netif} {self.context} {self.packet}"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Netifcon_5statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Netifcon_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Netifcon, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(15, 180, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Netifcon_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Netifcon___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Netifcon, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Netifcon, (type(self), 0x074b3eb, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Netifcon__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Netifcon_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Netifcon___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Netifcon, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/netcontext.pxi":184
 * 
 * 
 * class NodeconIPVersion(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Nodecon IP Version"""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_NodeconIPVersion, __pyx_mstate_global->__pyx_n_u_NodeconIPVersion, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Nodecon_IP_Version); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__pyx_t_9 != __pyx_t_7) {
    if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(15, 184, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":188
 *     """Nodecon IP Version"""
 * 
 *     ipv4 = AF_INET             # <<<<<<<<<<<<<<
 *     ipv6 = AF_INET6
 * 
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(AF_INET); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ipv4, __pyx_t_7) < (0)) __PYX_ERR(15, 188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":189
 * 
 *     ipv4 = AF_INET
 *     ipv6 = AF_INET6             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(AF_INET6); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ipv6, __pyx_t_7) < (0)) __PYX_ERR(15, 189, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/netcontext.pxi":184
 * 
 * 
 * class NodeconIPVersion(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Nodecon IP Version"""
*/
  __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_NodeconIPVersion, __pyx_t_9, __pyx_t_5, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NodeconIPVersion, __pyx_t_7) < (0)) __PYX_ERR(15, 184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/netcontext.pxi":283
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"nodecon {self.network.with_netmask.replace('/', ' ')} {self.context}"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Nodecon_5statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Nodecon_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Nodecon, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(15, 283, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Nodecon_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Nodecon___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Nodecon, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nodecon, (type(self), 0x5b0ce91, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nodecon__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Nodecon_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Nodecon___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Nodecon, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/netcontext.pxi":287
 * 
 * 
 * class PortconProtocol(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """A portcon protocol type."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_4 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_PortconProtocol, __pyx_mstate_global->__pyx_n_u_PortconProtocol, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_A_portcon_protocol_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_9 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(15, 287, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/netcontext.pxi":291
 *     """A portcon protocol type."""
 * 
 *     tcp = IPPROTO_TCP             # <<<<<<<<<<<<<<
 *     udp = IPPROTO_UDP
 *     dccp = IPPROTO_DCCP
*/
  __pyx_t_4 = __Pyx_PyLong_From___pyx_anon_enum(IPPROTO_TCP); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_tcp, __pyx_t_4) < (0)) __PYX_ERR(15, 291, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/netcontext.pxi":292
 * 
 *     tcp = IPPROTO_TCP
 *     udp = IPPROTO_UDP             # <<<<<<<<<<<<<<
 *     dccp = IPPROTO_DCCP
 *     sctp = IPPROTO_SCTP
*/
  __pyx_t_4 = __Pyx_PyLong_From___pyx_anon_enum(IPPROTO_UDP); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_udp, __pyx_t_4) < (0)) __PYX_ERR(15, 292, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/netcontext.pxi":293
 *     tcp = IPPROTO_TCP
 *     udp = IPPROTO_UDP
 *     dccp = IPPROTO_DCCP             # <<<<<<<<<<<<<<
 *     sctp = IPPROTO_SCTP
 * 
*/
  __pyx_t_4 = __Pyx_PyLong_From___pyx_anon_enum(IPPROTO_DCCP); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_dccp, __pyx_t_4) < (0)) __PYX_ERR(15, 293, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/netcontext.pxi":294
 *     udp = IPPROTO_UDP
 *     dccp = IPPROTO_DCCP
 *     sctp = IPPROTO_SCTP             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_4 = __Pyx_PyLong_From___pyx_anon_enum(IPPROTO_SCTP); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_sctp, __pyx_t_4) < (0)) __PYX_ERR(15, 294, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/netcontext.pxi":287
 * 
 * 
 * class PortconProtocol(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """A portcon protocol type."""
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PortconProtocol, __pyx_t_9, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PortconProtocol, __pyx_t_4) < (0)) __PYX_ERR(15, 287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/netcontext.pxi":323
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"portcon {self.protocol} {self.ports} {self.context}"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Portcon_5statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Portcon_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Portcon, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(15, 323, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Portcon_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Portcon___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Portcon, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Portcon, (type(self), 0xf1a1872, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Portcon__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Portcon_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Portcon___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Portcon, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_20IbendportconIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IbendportconIterator___reduce_cy, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_20IbendportconIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IbendportconIterator___setstate, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_17IbpkeyconIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IbpkeyconIterator___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_17IbpkeyconIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IbpkeyconIterator___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_16NetifconIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NetifconIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_16NetifconIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NetifconIterator___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15NodeconIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NodeconIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15NodeconIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NodeconIterator___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15PortconIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PortconIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15PortconIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PortconIterator___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/objclass.pxi":7
 * #
 * 
 * cdef object _common_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * cdef object _objclass_cache = WeakKeyDefaultDict(dict)
 * 
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict); if (unlikely(!__pyx_t_7)) __PYX_ERR(16, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, ((PyObject *)(&PyDict_Type))};
    __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__common_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__common_cache, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_9 = 0;

  /* "setools/policyrep/objclass.pxi":8
 * 
 * cdef object _common_cache = WeakKeyDefaultDict(dict)
 * cdef object _objclass_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_7 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(16, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, ((PyObject *)(&PyDict_Type))};
    __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__objclass_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__objclass_cache, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_9 = 0;

  /* "setools/policyrep/objclass.pxi":63
 *         return other in self.perms
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         # backslashes not allowed in f-strings
 *         return "common {0}\n{{\n\t{1}\n}}".format(self, '\n\t'.join(sorted(self.perms)))
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6Common_3statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Common_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Common, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(16, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6Common_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Common___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Common, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Common, (type(self), 0x4a0ce16, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Common__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6Common_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Common___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Common, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/objclass.pxi":171
 *             raise NoCommon(f"{self.name} does not inherit a common.")
 * 
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator for the constraints that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8ObjClass_3constraints, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ObjClass_constraints, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass, __pyx_mstate_global->__pyx_n_u_constraints, __pyx_t_9) < (0)) __PYX_ERR(16, 171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/objclass.pxi":180
 *         return iter(self._constraints)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator for the defaults for this object class."""
 *         return iter(self._defaults)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8ObjClass_5defaults, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ObjClass_defaults, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[213])); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass, __pyx_mstate_global->__pyx_n_u_defaults, __pyx_t_9) < (0)) __PYX_ERR(16, 180, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/objclass.pxi":184
 *         return iter(self._defaults)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         stmt = f"class {self.name}\n"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8ObjClass_7statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ObjClass_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[214])); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(16, 184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/objclass.pxi":199
 *         return stmt
 * 
 *     def validatetrans(self):             # <<<<<<<<<<<<<<
 *         """Iterator for validatetrans that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8ObjClass_9validatetrans, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ObjClass_validatetrans, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[215])); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass, __pyx_mstate_global->__pyx_n_u_validatetrans, __pyx_t_9) < (0)) __PYX_ERR(16, 199, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8ObjClass_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ObjClass___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[216])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x90ed6ff, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ObjClass__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8ObjClass_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ObjClass___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[217])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ObjClass, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_21CommonHashtabIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CommonHashtabIterator___reduce_c, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[218])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_21CommonHashtabIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CommonHashtabIterator___setstate, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[219])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_23ObjClassHashtabIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ObjClassHashtabIterator___reduce, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[220])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_23ObjClassHashtabIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ObjClassHashtabIterator___setsta, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[221])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/objclass.pxi":299
 *                 count += 1
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = 0
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_24PermissionVectorIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PermissionVectorIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[222])); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_9) < (0)) __PYX_ERR(16, 299, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_24PermissionVectorIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PermissionVectorIterator___reduc, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[223])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0x3545a83, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PermissionVectorIterator__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_24PermissionVectorIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PermissionVectorIterator___setst, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[224])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PermissionVectorIterator, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/object.pxi":21
 *         return hash(str(self))
 * 
 *     def __copy__(self):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         return self
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12PolicyObject_3__copy__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyObject___copy, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[225])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject, __pyx_mstate_global->__pyx_n_u_copy, __pyx_t_9) < (0)) __PYX_ERR(4, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/object.pxi":25
 *         return self
 * 
 *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         memo[id(self)] = self
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12PolicyObject_5__deepcopy__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyObject___deepcopy, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[226])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject, __pyx_mstate_global->__pyx_n_u_deepcopy, __pyx_t_9) < (0)) __PYX_ERR(4, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/object.pxi":61
 *         return f"<{self.__class__.__name__}({repr(self.policy)}, \"{self}\")>"
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         """
 *         A rendering of the policy statement.  This should be
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12PolicyObject_17statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyObject_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[227])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(4, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12PolicyObject_19__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyObject___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[228])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x69e74d2, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyObject__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12PolicyObject_21__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyObject___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[229])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyObject, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/object.pxi":82
 *         return self.name
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the symbol into constitent symbols."""
 *         # Default is non-expandable.
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12PolicySymbol_5expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicySymbol_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_9) < (0)) __PYX_ERR(4, 82, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12PolicySymbol_8__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicySymbol___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[230])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicySymbol__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12PolicySymbol_10__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicySymbol___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[231])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicySymbol, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Ocontext_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Ocontext___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[232])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x9a91717, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ocontext__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Ocontext_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Ocontext___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[233])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ocontext, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/object.pxi":113
 *         raise NotImplementedError
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         raise NotImplementedError
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14PolicyIterator_7reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[234])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_9) < (0)) __PYX_ERR(4, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14PolicyIterator_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[235])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0x823412d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyIterator__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14PolicyIterator_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyIterator___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[236])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyIterator, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/object.pxi":166
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = sepol.ebitmap_start(self.bmap, &self.node)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15EbitmapIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EbitmapIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[237])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_EbitmapIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_9) < (0)) __PYX_ERR(4, 166, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15EbitmapIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EbitmapIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[238])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15EbitmapIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EbitmapIterator___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[239])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/object.pxi":232
 *         return self.table[0].nel
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         self.node = self.table[0].htable[0]
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15HashtabIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HashtabIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[240])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_HashtabIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_9) < (0)) __PYX_ERR(4, 232, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15HashtabIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HashtabIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[241])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15HashtabIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HashtabIterator___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[242])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_16OcontextIterator_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_OcontextIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[243])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_16OcontextIterator_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_OcontextIterator___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[244])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/polcap.pxi":30
 *         return hash(self.name)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"policycap {self.name};"
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_16PolicyCapability_5statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyCapability_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[245])); if (unlikely(!__pyx_t_9)) __PYX_ERR(17, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyCapability, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_9) < (0)) __PYX_ERR(17, 30, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_16PolicyCapability_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyCapability___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[246])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyCapability, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyCapability__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_16PolicyCapability_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyCapability___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[247])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyCapability, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_24PolicyCapabilityIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyCapabilityIterator___reduc, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[248])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_24PolicyCapabilityIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyCapabilityIterator___setst, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[249])); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/rbacrule.pxi":10
 * # Typing
 * #
 * AnyRBACRule = Union[RoleAllow, RoleTransition]             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Union); if (unlikely(!__pyx_t_9)) __PYX_ERR(18, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = PyTuple_Pack(2, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllow), ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransition)); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AnyRBACRule, __pyx_t_7) < (0)) __PYX_ERR(18, 10, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/rbacrule.pxi":16
 * # Classes
 * #
 * class RBACRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """An enumeration of RBAC rule types."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = PyTuple_Pack(1, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PEP560_update_bases(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(18, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_7, __pyx_mstate_global->__pyx_n_u_RBACRuletype, __pyx_mstate_global->__pyx_n_u_RBACRuletype, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_An_enumeration_of_RBAC_rule_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_7 != __pyx_t_5) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_5) < 0))) __PYX_ERR(18, 16, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/rbacrule.pxi":20
 *     """An enumeration of RBAC rule types."""
 * 
 *     allow = 1             # <<<<<<<<<<<<<<
 *     role_transition = 2
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_allow, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(18, 20, __pyx_L1_error)

  /* "setools/policyrep/rbacrule.pxi":21
 * 
 *     allow = 1
 *     role_transition = 2             # <<<<<<<<<<<<<<
 * 
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_role_transition, __pyx_mstate_global->__pyx_int_2) < (0)) __PYX_ERR(18, 21, __pyx_L1_error)

  /* "setools/policyrep/rbacrule.pxi":16
 * # Classes
 * #
 * class RBACRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """An enumeration of RBAC rule types."""
*/
  __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_RBACRuletype, __pyx_t_7, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RBACRuletype, __pyx_t_5) < (0)) __PYX_ERR(18, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/rbacrule.pxi":46
 *         return str(self) < str(other)
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleAllow r
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9RoleAllow_5expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleAllow_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllow, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_7) < (0)) __PYX_ERR(18, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/rbacrule.pxi":65
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target};"
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9RoleAllow_8statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleAllow_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[250])); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllow, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(18, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9RoleAllow_10__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleAllow___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[251])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllow, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0x9f93d87, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoleAllow__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9RoleAllow_12__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleAllow___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[252])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllow, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/rbacrule.pxi":104
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleTransition r
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14RoleTransition_5expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleTransition_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransition, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_7) < (0)) __PYX_ERR(18, 104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/rbacrule.pxi":124
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14RoleTransition_8statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleTransition_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransition, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(18, 124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14RoleTransition_10__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleTransition___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransition, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0xe7c0663, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoleTransition__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14RoleTransition_12__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleTransition___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransition, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/rbacrule.pxi":168
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_17RoleAllowIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleAllowIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleAllowIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_7) < (0)) __PYX_ERR(18, 168, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_17RoleAllowIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleAllowIterator___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_17RoleAllowIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleAllowIterator___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/rbacrule.pxi":210
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22RoleTransitionIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleTransitionIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_RoleTransitionIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_7) < (0)) __PYX_ERR(18, 210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22RoleTransitionIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleTransitionIterator___reduce, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22RoleTransitionIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleTransitionIterator___setstat, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/role.pxi":31
 *         return frozenset()
 * 
 *     def types(self):             # <<<<<<<<<<<<<<
 *         """Generator which yields the role's set of types."""
 *         return iter(self._types)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4Role_1types, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Role_types, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Role, __pyx_mstate_global->__pyx_n_u_types, __pyx_t_7) < (0)) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/role.pxi":35
 *         return iter(self._types)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4Role_3statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Role_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Role, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(19, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4Role_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Role___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Role, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Role, (type(self), 0x22ceaf7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Role__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4Role_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Role___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Role, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19RoleHashtabIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleHashtabIterator___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19RoleHashtabIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleHashtabIterator___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19RoleEbitmapIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleEbitmapIterator___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19RoleEbitmapIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoleEbitmapIterator___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/rule.pxi":58
 *         raise RuleUseError
 * 
 *     def enabled(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Determine if the rule is enabled, given the stated boolean values.
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyRule_1enabled, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyRule_enabled, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule, __pyx_mstate_global->__pyx_n_u_enabled, __pyx_t_7) < (0)) __PYX_ERR(20, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/rule.pxi":73
 *         return True
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         raise NotImplementedError
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyRule_3expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyRule_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_7) < (0)) __PYX_ERR(20, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyRule_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyRule___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0x9f93d87, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyRule__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyRule_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PolicyRule___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_PolicyRule, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":9
 * 
 * 
 * class PolicyTarget(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of policy targets."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = PyTuple_Pack(1, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_7, __pyx_mstate_global->__pyx_n_u_PolicyTarget, __pyx_mstate_global->__pyx_n_u_PolicyTarget, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Enumeration_of_policy_targets); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__pyx_t_7 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(5, 9, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":13
 *     """Enumeration of policy targets."""
 * 
 *     selinux = sepol.SEPOL_TARGET_SELINUX             # <<<<<<<<<<<<<<
 *     xen = sepol.SEPOL_TARGET_XEN
 * 
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(SEPOL_TARGET_SELINUX); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_selinux, __pyx_t_9) < (0)) __PYX_ERR(5, 13, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":14
 * 
 *     selinux = sepol.SEPOL_TARGET_SELINUX
 *     xen = sepol.SEPOL_TARGET_XEN             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(SEPOL_TARGET_XEN); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_xen, __pyx_t_9) < (0)) __PYX_ERR(5, 14, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":9
 * 
 * 
 * class PolicyTarget(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of policy targets."""
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PolicyTarget, __pyx_t_7, __pyx_t_5, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PolicyTarget, __pyx_t_9) < (0)) __PYX_ERR(5, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":17
 * 
 * 
 * class HandleUnknown(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of handle unknown settings."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = PyTuple_Pack(1, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = __Pyx_CalculateMetaclass(NULL, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_7, __pyx_mstate_global->__pyx_n_u_HandleUnknown, __pyx_mstate_global->__pyx_n_u_HandleUnknown, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Enumeration_of_handle_unknown_se); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_7 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(5, 17, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":21
 *     """Enumeration of handle unknown settings."""
 * 
 *     deny = sepol.SEPOL_DENY_UNKNOWN             # <<<<<<<<<<<<<<
 *     allow = sepol.SEPOL_ALLOW_UNKNOWN
 *     reject = sepol.SEPOL_REJECT_UNKNOWN
*/
  __pyx_t_4 = __Pyx_PyLong_From___pyx_anon_enum(SEPOL_DENY_UNKNOWN); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_deny, __pyx_t_4) < (0)) __PYX_ERR(5, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":22
 * 
 *     deny = sepol.SEPOL_DENY_UNKNOWN
 *     allow = sepol.SEPOL_ALLOW_UNKNOWN             # <<<<<<<<<<<<<<
 *     reject = sepol.SEPOL_REJECT_UNKNOWN
 * 
*/
  __pyx_t_4 = __Pyx_PyLong_From___pyx_anon_enum(SEPOL_ALLOW_UNKNOWN); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_allow, __pyx_t_4) < (0)) __PYX_ERR(5, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":23
 *     deny = sepol.SEPOL_DENY_UNKNOWN
 *     allow = sepol.SEPOL_ALLOW_UNKNOWN
 *     reject = sepol.SEPOL_REJECT_UNKNOWN             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_4 = __Pyx_PyLong_From___pyx_anon_enum(SEPOL_REJECT_UNKNOWN); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_reject, __pyx_t_4) < (0)) __PYX_ERR(5, 23, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":17
 * 
 * 
 * class HandleUnknown(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of handle unknown settings."""
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_HandleUnknown, __pyx_t_7, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HandleUnknown, __pyx_t_4) < (0)) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":79
 *         return self.path
 * 
 *     def __copy__(self):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         return self
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_9__copy__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy___copy, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_copy, __pyx_t_7) < (0)) __PYX_ERR(5, 79, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":83
 *         return self
 * 
 *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         memo[id(self)] = self
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_11__deepcopy__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy___deepcopy, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_deepcopy, __pyx_t_7) < (0)) __PYX_ERR(5, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":338
 *     # Policy components lookup functions
 *     #
 *     def lookup_boolean(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a Boolean."""
 *         for b in self.bools():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_13lookup_boolean, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_boolean, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_boolean, __pyx_t_7) < (0)) __PYX_ERR(5, 338, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":346
 *         raise InvalidBoolean(f"{name} is not a valid Boolean")
 * 
 *     def lookup_category(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_15lookup_category, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_category, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[3]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_category, __pyx_t_7) < (0)) __PYX_ERR(5, 346, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":354
 *         raise InvalidCategory(f"{name} is not a valid category")
 * 
 *     def lookup_class(self, name):             # <<<<<<<<<<<<<<
 *         """Look up an object class."""
 *         for cls in self.classes():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_17lookup_class, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_class, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_class, __pyx_t_7) < (0)) __PYX_ERR(5, 354, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":362
 *         raise InvalidClass(f"{name} is not a valid class")
 * 
 *     def lookup_common(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a common permission set."""
 *         for common in self.commons():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_19lookup_common, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_common, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_common, __pyx_t_7) < (0)) __PYX_ERR(5, 362, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":370
 *         raise InvalidCommon(f"{name} is not a valid common")
 * 
 *     def lookup_context(self, ctx):             # <<<<<<<<<<<<<<
 *         """Look up a context."""
 *         return Context.factory_from_string(self, ctx)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_21lookup_context, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_context, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_context, __pyx_t_7) < (0)) __PYX_ERR(5, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":374
 *         return Context.factory_from_string(self, ctx)
 * 
 *     def lookup_level(self, level):             # <<<<<<<<<<<<<<
 *         """Look up a MLS level."""
 *         return Level.factory_from_string(self, level)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_23lookup_level, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_level, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_level, __pyx_t_7) < (0)) __PYX_ERR(5, 374, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":378
 *         return Level.factory_from_string(self, level)
 * 
 *     def lookup_sensitivity(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_25lookup_sensitivity, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_sensitivity, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[3]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_sensitivity, __pyx_t_7) < (0)) __PYX_ERR(5, 378, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":386
 *         raise InvalidSensitivity(f"{name} is not a valid sensitivity")
 * 
 *     def lookup_range(self, range_):             # <<<<<<<<<<<<<<
 *         """Look up a MLS range."""
 *         return Range.factory_from_string(self, range_)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_27lookup_range, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_range, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_range, __pyx_t_7) < (0)) __PYX_ERR(5, 386, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":390
 *         return Range.factory_from_string(self, range_)
 * 
 *     def lookup_role(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a role by name."""
 *         for r in self.roles():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_29lookup_role, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_role, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_role, __pyx_t_7) < (0)) __PYX_ERR(5, 390, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":398
 *         raise InvalidRole(f"{name} is not a valid role")
 * 
 *     def lookup_type(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_31lookup_type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_type, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[3]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_type, __pyx_t_7) < (0)) __PYX_ERR(5, 398, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":406
 *         raise InvalidType(f"{name} is not a valid type")
 * 
 *     def lookup_type_or_attr(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_33lookup_type_or_attr, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_type_or_att, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[286])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[3]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_type_or_attr, __pyx_t_7) < (0)) __PYX_ERR(5, 406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":418
 *         raise InvalidType(f"{name} is not a valid type attribute")
 * 
 *     def lookup_typeattr(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_35lookup_typeattr, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_typeattr, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[287])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_typeattr, __pyx_t_7) < (0)) __PYX_ERR(5, 418, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":426
 *         raise InvalidType(f"{name} is not a valid type attribute")
 * 
 *     def lookup_user(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a user by name."""
 *         for u in self.users():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_37lookup_user, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_lookup_user, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[288])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_lookup_user, __pyx_t_7) < (0)) __PYX_ERR(5, 426, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":437
 *     # Policy components iterators
 *     #
 *     def bools(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all Booleans."""
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_39bools, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_bools, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[289])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_bools, __pyx_t_7) < (0)) __PYX_ERR(5, 437, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":441
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)
 * 
 *     def bounds(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all *bounds statements (typebounds, etc.)"""
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_41bounds, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_bounds, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[290])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_bounds, __pyx_t_7) < (0)) __PYX_ERR(5, 441, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":445
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def categories(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all MLS categories."""
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_43categories, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_categories, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[291])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_categories, __pyx_t_7) < (0)) __PYX_ERR(5, 445, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":449
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)
 * 
 *     def classes(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all object classes."""
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_45classes, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_classes, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[292])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_classes, __pyx_t_7) < (0)) __PYX_ERR(5, 449, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":453
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)
 * 
 *     def commons(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all commons."""
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_47commons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_commons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[293])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_commons, __pyx_t_7) < (0)) __PYX_ERR(5, 453, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":457
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_49defaults, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_defaults, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_defaults, __pyx_t_7) < (0)) __PYX_ERR(5, 457, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":462
 *             yield from cls.defaults()
 * 
 *     def levels(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all level declarations."""
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_52levels, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_levels, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[294])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 462, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_levels, __pyx_t_7) < (0)) __PYX_ERR(5, 462, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":466
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 * 
 *     def polcaps(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all policy capabilities."""
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_54polcaps, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_polcaps, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[295])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_polcaps, __pyx_t_7) < (0)) __PYX_ERR(5, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":470
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)
 * 
 *     def roles(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all roles."""
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_56roles, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_roles, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[296])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_roles, __pyx_t_7) < (0)) __PYX_ERR(5, 470, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":474
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)
 * 
 *     def sensitivities(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all sensitivities."""
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_58sensitivities, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_sensitivities, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[297])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_sensitivities, __pyx_t_7) < (0)) __PYX_ERR(5, 474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":478
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 * 
 *     def types(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all types."""
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_60types, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_types, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[298])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_types, __pyx_t_7) < (0)) __PYX_ERR(5, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":482
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def typeattributes(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all (type) attributes."""
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_62typeattributes, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_typeattributes, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[299])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_typeattributes, __pyx_t_7) < (0)) __PYX_ERR(5, 482, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":486
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def users(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all roles."""
 *         return UserHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_USERS].table)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_64users, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_users, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[300])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_users, __pyx_t_7) < (0)) __PYX_ERR(5, 486, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":493
 *     # Policy rules iterators
 *     #
 *     def conditionals(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all conditional rule blocks."""
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_66conditionals, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_conditionals, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[301])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_conditionals, __pyx_t_7) < (0)) __PYX_ERR(5, 493, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":497
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)
 * 
 *     def mlsrules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all MLS rules."""
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_68mlsrules, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_mlsrules, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[302])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_mlsrules, __pyx_t_7) < (0)) __PYX_ERR(5, 497, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":501
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)
 * 
 *     def rbacrules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all RBAC rules."""
 *         return itertools.chain(RoleAllowIterator.factory(self, self.handle.p.role_allow),
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_70rbacrules, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_rbacrules, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[303])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_rbacrules, __pyx_t_7) < (0)) __PYX_ERR(5, 501, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":506
 *                                RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
 *     def terules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all type enforcement rules."""
 *         yield from TERuleIterator.factory(self, &self.handle.p.te_avtab)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_72terules, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_terules, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_terules, __pyx_t_7) < (0)) __PYX_ERR(5, 506, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":518
 *     # Constraints iterators
 *     #
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_75constraints, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_constraints, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_constraints, __pyx_t_7) < (0)) __PYX_ERR(5, 518, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":527
 *     # In-policy Labeling statement iterators
 *     #
 *     def fs_uses(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all fs_use_* statements."""
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_78fs_uses, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_fs_uses, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[304])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_fs_uses, __pyx_t_7) < (0)) __PYX_ERR(5, 527, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":531
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])
 * 
 *     def genfscons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all genfscon statements."""
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_80genfscons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_genfscons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[305])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_genfscons, __pyx_t_7) < (0)) __PYX_ERR(5, 531, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":535
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)
 * 
 *     def ibendportcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ibendportcon statements."""
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_82ibendportcons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_ibendportcons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[306])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_ibendportcons, __pyx_t_7) < (0)) __PYX_ERR(5, 535, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":539
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])
 * 
 *     def ibpkeycons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ibpkeycon statements."""
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_84ibpkeycons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_ibpkeycons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[307])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_ibpkeycons, __pyx_t_7) < (0)) __PYX_ERR(5, 539, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":543
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])
 * 
 *     def initialsids(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all initial SID statements."""
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_86initialsids, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_initialsids, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[308])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_initialsids, __pyx_t_7) < (0)) __PYX_ERR(5, 543, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":547
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])
 * 
 *     def netifcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all netifcon statements."""
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_88netifcons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_netifcons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[309])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_netifcons, __pyx_t_7) < (0)) __PYX_ERR(5, 547, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":551
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])
 * 
 *     def nodecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all nodecon statements."""
 *         return itertools.chain(NodeconIterator.factory(self,
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_90nodecons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_nodecons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[310])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_nodecons, __pyx_t_7) < (0)) __PYX_ERR(5, 551, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":560
 *                                                        NodeconIPVersion.ipv6))
 * 
 *     def portcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all portcon statements."""
 *         return PortconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_PORT])
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_92portcons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_portcons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[311])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_portcons, __pyx_t_7) < (0)) __PYX_ERR(5, 560, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":567
 *     # Xen labeling iterators
 *     #
 *     def devicetreecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all devicetreecon statements."""
 *         return DevicetreeconIterator.factory(self,
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_94devicetreecons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_devicetreecons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[312])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_devicetreecons, __pyx_t_7) < (0)) __PYX_ERR(5, 567, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":572
 *                                              self.handle.p.ocontexts[sepol.OCON_XEN_DEVICETREE])
 * 
 *     def iomemcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all iomemcon statements."""
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_96iomemcons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_iomemcons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[313])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_iomemcons, __pyx_t_7) < (0)) __PYX_ERR(5, 572, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":576
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])
 * 
 *     def ioportcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ioportcon statements."""
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_98ioportcons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_ioportcons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[314])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_ioportcons, __pyx_t_7) < (0)) __PYX_ERR(5, 576, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":580
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])
 * 
 *     def pcidevicecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all pcidevicecon statements."""
 *         return PcideviceconIterator.factory(self,
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_100pcidevicecons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_pcidevicecons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[315])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_pcidevicecons, __pyx_t_7) < (0)) __PYX_ERR(5, 580, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":585
 *                                             self.handle.p.ocontexts[sepol.OCON_XEN_PCIDEVICE])
 * 
 *     def pirqcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all pirqcon statements."""
 *         return PirqconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_PIRQ])
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_102pirqcons, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy_pirqcons, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[316])); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_SELinuxPolicy, __pyx_mstate_global->__pyx_n_u_pirqcons, __pyx_t_7) < (0)) __PYX_ERR(5, 585, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_104__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[317])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13SELinuxPolicy_106__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SELinuxPolicy___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[318])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":11
 * # Typing
 * #
 * AnyTERule = TypeVar("AnyTERule", bound=BaseTERule)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_TypeVar); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_AnyTERule};
    __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 11, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_bound, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule), __pyx_t_4, __pyx_callargs+2, 0) < (0)) __PYX_ERR(21, 11, __pyx_L1_error)
    __pyx_t_7 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 11, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AnyTERule, __pyx_t_7) < (0)) __PYX_ERR(21, 11, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":17
 * # Classes
 * #
 * class TERuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of types of TE rules."""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_PolicyEnum); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = PyTuple_Pack(1, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_7, __pyx_mstate_global->__pyx_n_u_TERuletype, __pyx_mstate_global->__pyx_n_u_TERuletype, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_Enumeration_of_types_of_TE_rules); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__pyx_t_7 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(21, 17, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":21
 *     """Enumeration of types of TE rules."""
 * 
 *     allow = sepol.AVTAB_ALLOWED             # <<<<<<<<<<<<<<
 *     neverallow = sepol.AVTAB_NEVERALLOW
 *     auditallow = sepol.AVTAB_AUDITALLOW
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(AVTAB_ALLOWED); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_allow, __pyx_t_9) < (0)) __PYX_ERR(21, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":22
 * 
 *     allow = sepol.AVTAB_ALLOWED
 *     neverallow = sepol.AVTAB_NEVERALLOW             # <<<<<<<<<<<<<<
 *     auditallow = sepol.AVTAB_AUDITALLOW
 *     dontaudit = sepol.AVTAB_AUDITDENY
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(AVTAB_NEVERALLOW); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_neverallow, __pyx_t_9) < (0)) __PYX_ERR(21, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":23
 *     allow = sepol.AVTAB_ALLOWED
 *     neverallow = sepol.AVTAB_NEVERALLOW
 *     auditallow = sepol.AVTAB_AUDITALLOW             # <<<<<<<<<<<<<<
 *     dontaudit = sepol.AVTAB_AUDITDENY
 *     allowxperm = sepol.AVTAB_XPERMS_ALLOWED
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(AVTAB_AUDITALLOW); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_auditallow, __pyx_t_9) < (0)) __PYX_ERR(21, 23, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":24
 *     neverallow = sepol.AVTAB_NEVERALLOW
 *     auditallow = sepol.AVTAB_AUDITALLOW
 *     dontaudit = sepol.AVTAB_AUDITDENY             # <<<<<<<<<<<<<<
 *     allowxperm = sepol.AVTAB_XPERMS_ALLOWED
 *     neverallowxperm = sepol.AVTAB_XPERMS_NEVERALLOW
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(AVTAB_AUDITDENY); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_dontaudit, __pyx_t_9) < (0)) __PYX_ERR(21, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":25
 *     auditallow = sepol.AVTAB_AUDITALLOW
 *     dontaudit = sepol.AVTAB_AUDITDENY
 *     allowxperm = sepol.AVTAB_XPERMS_ALLOWED             # <<<<<<<<<<<<<<
 *     neverallowxperm = sepol.AVTAB_XPERMS_NEVERALLOW
 *     auditallowxperm = sepol.AVTAB_XPERMS_AUDITALLOW
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(AVTAB_XPERMS_ALLOWED); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_allowxperm, __pyx_t_9) < (0)) __PYX_ERR(21, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":26
 *     dontaudit = sepol.AVTAB_AUDITDENY
 *     allowxperm = sepol.AVTAB_XPERMS_ALLOWED
 *     neverallowxperm = sepol.AVTAB_XPERMS_NEVERALLOW             # <<<<<<<<<<<<<<
 *     auditallowxperm = sepol.AVTAB_XPERMS_AUDITALLOW
 *     dontauditxperm = sepol.AVTAB_XPERMS_DONTAUDIT
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(AVTAB_XPERMS_NEVERALLOW); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_neverallowxperm, __pyx_t_9) < (0)) __PYX_ERR(21, 26, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":27
 *     allowxperm = sepol.AVTAB_XPERMS_ALLOWED
 *     neverallowxperm = sepol.AVTAB_XPERMS_NEVERALLOW
 *     auditallowxperm = sepol.AVTAB_XPERMS_AUDITALLOW             # <<<<<<<<<<<<<<
 *     dontauditxperm = sepol.AVTAB_XPERMS_DONTAUDIT
 *     type_transition = sepol.AVTAB_TRANSITION
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(AVTAB_XPERMS_AUDITALLOW); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_auditallowxperm, __pyx_t_9) < (0)) __PYX_ERR(21, 27, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":28
 *     neverallowxperm = sepol.AVTAB_XPERMS_NEVERALLOW
 *     auditallowxperm = sepol.AVTAB_XPERMS_AUDITALLOW
 *     dontauditxperm = sepol.AVTAB_XPERMS_DONTAUDIT             # <<<<<<<<<<<<<<
 *     type_transition = sepol.AVTAB_TRANSITION
 *     type_change = sepol.AVTAB_CHANGE
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(AVTAB_XPERMS_DONTAUDIT); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_dontauditxperm, __pyx_t_9) < (0)) __PYX_ERR(21, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":29
 *     auditallowxperm = sepol.AVTAB_XPERMS_AUDITALLOW
 *     dontauditxperm = sepol.AVTAB_XPERMS_DONTAUDIT
 *     type_transition = sepol.AVTAB_TRANSITION             # <<<<<<<<<<<<<<
 *     type_change = sepol.AVTAB_CHANGE
 *     type_member = sepol.AVTAB_MEMBER
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(AVTAB_TRANSITION); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_type_transition, __pyx_t_9) < (0)) __PYX_ERR(21, 29, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":30
 *     dontauditxperm = sepol.AVTAB_XPERMS_DONTAUDIT
 *     type_transition = sepol.AVTAB_TRANSITION
 *     type_change = sepol.AVTAB_CHANGE             # <<<<<<<<<<<<<<
 *     type_member = sepol.AVTAB_MEMBER
 * 
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(AVTAB_CHANGE); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_type_change, __pyx_t_9) < (0)) __PYX_ERR(21, 30, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":31
 *     type_transition = sepol.AVTAB_TRANSITION
 *     type_change = sepol.AVTAB_CHANGE
 *     type_member = sepol.AVTAB_MEMBER             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_9 = __Pyx_PyLong_From___pyx_anon_enum(AVTAB_MEMBER); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_type_member, __pyx_t_9) < (0)) __PYX_ERR(21, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/terule.pxi":17
 * # Classes
 * #
 * class TERuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of types of TE rules."""
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TERuletype, __pyx_t_7, __pyx_t_5, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TERuletype, __pyx_t_9) < (0)) __PYX_ERR(21, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":81
 *             return self._conditional_block
 * 
 *     def enabled(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Determine if the rule is enabled, given the stated boolean values.
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10BaseTERule_1enabled, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseTERule_enabled, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[319])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule, __pyx_mstate_global->__pyx_n_u_enabled, __pyx_t_7) < (0)) __PYX_ERR(21, 81, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10BaseTERule_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseTERule___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[320])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0xd397518, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseTERule__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10BaseTERule_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseTERule___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[321])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseTERule, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":162
 *         raise RuleUseError(f"{self.ruletype} rules do not have a default type.")
 * 
 *     def derive_expanded(self, BaseType source, BaseType target, perms):             # <<<<<<<<<<<<<<
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6AVRule_5derive_expanded, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVRule_derive_expanded, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[322])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRule, __pyx_mstate_global->__pyx_n_u_derive_expanded, __pyx_t_7) < (0)) __PYX_ERR(21, 162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":188
 *         return r
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRule r
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6AVRule_7expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVRule_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRule, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_7) < (0)) __PYX_ERR(21, 188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":210
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} "
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6AVRule_10statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVRule_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[323])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRule, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(21, 210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6AVRule_12__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVRule___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[324])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRule, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AVRule, (type(self), 0x7ba1f46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AVRule__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6AVRule_14__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVRule___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[325])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRule, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":237
 *     """
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         """
 *         String formatting.
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8XpermSet_1__format__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_XpermSet___format, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[326])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet, __pyx_mstate_global->__pyx_n_u_format, __pyx_t_7) < (0)) __PYX_ERR(21, 237, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":274
 *         return f"{{ {self:,} }}"
 * 
 *     def ranges(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the number of ranges in the set.  Main use
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8XpermSet_7ranges, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_XpermSet_ranges, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[327])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet, __pyx_mstate_global->__pyx_n_u_ranges, __pyx_t_7) < (0)) __PYX_ERR(21, 274, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8XpermSet_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_XpermSet___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[328])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_XpermSet, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_XpermSet__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8XpermSet_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_XpermSet___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[329])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_XpermSet, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8IoctlSet_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IoctlSet___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[330])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IoctlSet, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_IoctlSet__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8IoctlSet_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IoctlSet___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[331])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_IoctlSet, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":379
 *         raise RuleUseError(f"{self.ruletype} rules do not have a default type.")
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRuleXperm r
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11AVRuleXperm_5expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVRuleXperm_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRuleXperm, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_7) < (0)) __PYX_ERR(21, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":402
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.xperm_type} "
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11AVRuleXperm_8statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVRuleXperm_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[332])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRuleXperm, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(21, 402, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11AVRuleXperm_10__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVRuleXperm___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[333])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRuleXperm, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0x7ba1f46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AVRuleXperm__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11AVRuleXperm_12__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVRuleXperm___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[334])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_AVRuleXperm, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":455
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef TERule r
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6TERule_5expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TERule_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERule, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_7) < (0)) __PYX_ERR(21, 455, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":477
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default};"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6TERule_8statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TERule_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[335])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERule, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(21, 477, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6TERule_10__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TERule___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[336])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERule, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TERule, (type(self), 0xb33fdce, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TERule__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_6TERule_12__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TERule___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[337])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERule, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":531
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef FileNameTERule r
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14FileNameTERule_5expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileNameTERule_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERule, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_7) < (0)) __PYX_ERR(21, 531, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":555
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"{self.ruletype} {self.source} {self.target}:{self.tclass} {self.default} {self.filename};"
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14FileNameTERule_8statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileNameTERule_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[338])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERule, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(21, 555, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14FileNameTERule_10__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileNameTERule___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[339])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERule, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0x8b9259a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FileNameTERule__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14FileNameTERule_12__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileNameTERule___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[340])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERule, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":624
 *         return self.table.nel
 * 
 *     def ruletype_count(self):             # <<<<<<<<<<<<<<
 *         """
 *         Determine the number of rules.
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14TERuleIterator_5ruletype_count, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TERuleIterator_ruletype_count, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[341])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERuleIterator, __pyx_mstate_global->__pyx_n_u_ruletype_count, __pyx_t_7) < (0)) __PYX_ERR(21, 624, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":650
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         self.node = self.table.htable[0]
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14TERuleIterator_7reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TERuleIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[342])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TERuleIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_7) < (0)) __PYX_ERR(21, 650, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14TERuleIterator_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TERuleIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[343])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14TERuleIterator_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TERuleIterator___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[344])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":710
 *         return count
 * 
 *     def ruletype_count(self):             # <<<<<<<<<<<<<<
 *         """
 *         Determine the number of rules.
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_25ConditionalTERuleIterator_5ruletype_count, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalTERuleIterator_rulety, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[345])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator, __pyx_mstate_global->__pyx_n_u_ruletype_count, __pyx_t_7) < (0)) __PYX_ERR(21, 710, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":727
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_25ConditionalTERuleIterator_7reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalTERuleIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[346])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 727, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_7) < (0)) __PYX_ERR(21, 727, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_25ConditionalTERuleIterator_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalTERuleIterator___redu, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[347])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_25ConditionalTERuleIterator_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConditionalTERuleIterator___sets, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[348])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":749
 *         return i
 * 
 *     def _next_stype(self):             # <<<<<<<<<<<<<<
 *         while True:
 *             if self.datum == NULL:
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22FileNameTERuleIterator_1_next_stype, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileNameTERuleIterator__next_sty, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[349])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator, __pyx_mstate_global->__pyx_n_u_next_stype, __pyx_t_7) < (0)) __PYX_ERR(21, 749, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/terule.pxi":772
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 *         self.datum = NULL
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22FileNameTERuleIterator_7reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileNameTERuleIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[350])); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_7) < (0)) __PYX_ERR(21, 772, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22FileNameTERuleIterator_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileNameTERuleIterator___reduce, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[351])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_22FileNameTERuleIterator_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileNameTERuleIterator___setstat, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[352])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":10
 * # Cache objects
 * #
 * cdef object _type_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * cdef object _typeattr_cache = WeakKeyDefaultDict(dict)
 * 
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)(&PyDict_Type))};
    __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 10, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__type_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__type_cache, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":11
 * #
 * cdef object _type_cache = WeakKeyDefaultDict(dict)
 * cdef object _typeattr_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * 
 * #
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, ((PyObject *)(&PyDict_Type))};
    __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 11, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__typeattr_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__typeattr_cache, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":16
 * # Typing
 * #
 * TypeOrAttr = TypeVar("TypeOrAttr", bound=BaseType)             # <<<<<<<<<<<<<<
 * 
 * #
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_TypeVar); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TypeOrAttr};
    __pyx_t_9 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(22, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_bound, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType), __pyx_t_9, __pyx_callargs+2, 0) < (0)) __PYX_ERR(22, 16, __pyx_L1_error)
    __pyx_t_7 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_9);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TypeOrAttr, __pyx_t_7) < (0)) __PYX_ERR(22, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":36
 *     """Type/attribute base class."""
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this attribute into its member types."""
 *         raise NotImplementedError
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8BaseType_1expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseType_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[353])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_7) < (0)) __PYX_ERR(22, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":40
 *         raise NotImplementedError
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         raise NotImplementedError
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8BaseType_3attributes, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseType_attributes, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[354])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType, __pyx_mstate_global->__pyx_n_u_attributes, __pyx_t_7) < (0)) __PYX_ERR(22, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":44
 *         raise NotImplementedError
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         raise NotImplementedError
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8BaseType_5aliases, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseType_aliases, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[355])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType, __pyx_mstate_global->__pyx_n_u_aliases, __pyx_t_7) < (0)) __PYX_ERR(22, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8BaseType_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseType___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[356])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseType, (type(self), 0x00b0124, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseType__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8BaseType_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseType___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[357])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_BaseType, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":87
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this into its member types."""
 *         yield self
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4Type_1expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Type_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_7) < (0)) __PYX_ERR(22, 87, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":91
 *         yield self
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         self._load_attributes()
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4Type_4attributes, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Type_attributes, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[358])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type, __pyx_mstate_global->__pyx_n_u_attributes, __pyx_t_7) < (0)) __PYX_ERR(22, 91, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":96
 *         return iter(self._attrs)
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         return iter(self._aliases)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4Type_6aliases, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Type_aliases, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[359])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type, __pyx_mstate_global->__pyx_n_u_aliases, __pyx_t_7) < (0)) __PYX_ERR(22, 96, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":100
 *         return iter(self._aliases)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4Type_8statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Type_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[360])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(22, 100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4Type_10__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Type___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[361])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Type, (type(self), 0xf433841, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Type__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4Type_12__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Type___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[362])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Type, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":160
 *         return len(self._types)
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this attribute into its member types."""
 *         self.load_types()
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13TypeAttribute_7expand, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeAttribute_expand, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[363])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttribute, __pyx_mstate_global->__pyx_n_u_expand, __pyx_t_7) < (0)) __PYX_ERR(22, 160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":165
 *         return iter(self._types)
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have attributes.")
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13TypeAttribute_9attributes, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeAttribute_attributes, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[364])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttribute, __pyx_mstate_global->__pyx_n_u_attributes, __pyx_t_7) < (0)) __PYX_ERR(22, 165, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":169
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have attributes.")
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         raise SymbolUseError(f"{self.name} is an attribute, thus does not have aliases.")
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13TypeAttribute_11aliases, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeAttribute_aliases, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[365])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttribute, __pyx_mstate_global->__pyx_n_u_aliases, __pyx_t_7) < (0)) __PYX_ERR(22, 169, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":178
 *         raise SymbolUseError(f"{self.name} is an attribute, thus cannot be permissive.")
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"attribute {self.name};"
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13TypeAttribute_13statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeAttribute_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[366])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttribute, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(22, 178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13TypeAttribute_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeAttribute___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[367])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttribute, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x22ceaf7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TypeAttribute__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13TypeAttribute_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeAttribute___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[368])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttribute, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":234
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19TypeHashtabIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeHashtabIterator_reset, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[369])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeHashtabIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_7) < (0)) __PYX_ERR(22, 234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19TypeHashtabIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeHashtabIterator___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[370])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19TypeHashtabIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeHashtabIterator___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[371])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/typeattr.pxi":281
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_28TypeAttributeHashtabIterator_5reset, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeAttributeHashtabIterator_res, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[372])); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator, __pyx_mstate_global->__pyx_n_u_reset, __pyx_t_7) < (0)) __PYX_ERR(22, 281, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_28TypeAttributeHashtabIterator_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeAttributeHashtabIterator___r, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[373])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_28TypeAttributeHashtabIterator_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeAttributeHashtabIterator___s, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[374])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19TypeEbitmapIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeEbitmapIterator___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[375])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19TypeEbitmapIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeEbitmapIterator___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[376])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_28TypeAttributeEbitmapIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeAttributeEbitmapIterator___r, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[377])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_28TypeAttributeEbitmapIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeAttributeEbitmapIterator___s, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[378])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeOrAttributeEbitmapIterator_2, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[379])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TypeOrAttributeEbitmapIterator_3, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[380])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/user.pxi":7
 * #
 * 
 * cdef object _user_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_WeakKeyDefaultDict); if (unlikely(!__pyx_t_9)) __PYX_ERR(23, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, ((PyObject *)(&PyDict_Type))};
    __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__user_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__user_cache, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "setools/policyrep/user.pxi":61
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4User_1statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_User_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[381])); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_User, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(23, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4User_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_User___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[382])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_User, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_User, (type(self), 0xb60edeb, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_User__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_4User_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_User___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[383])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_User, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19UserHashtabIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_UserHashtabIterator___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[384])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.node,self.table cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19UserHashtabIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_UserHashtabIterator___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[385])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19UserEbitmapIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_UserEbitmapIterator___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[386])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.bmap,self.node cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19UserEbitmapIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_UserEbitmapIterator___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[387])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/xencontext.pxi":8
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)
 * class IomemconRange:             # <<<<<<<<<<<<<<
 * 
 *     """A range of Xen IO memory ranges"""
*/
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_IomemconRange, __pyx_mstate_global->__pyx_n_u_IomemconRange, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_A_range_of_Xen_IO_memory_ranges); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_low, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(24, 8, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_high, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(24, 8, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_mstate_global->__pyx_kp_u_dataclasses_ClassVar_int) < (0)) __PYX_ERR(24, 8, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_mstate_global->__pyx_kp_u_dataclasses_ClassVar_int) < (0)) __PYX_ERR(24, 8, __pyx_L1_error)
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_annotations, __pyx_t_9) < (0)) __PYX_ERR(24, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/xencontext.pxi":15
 *     high: int
 * 
 *     MIN: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0x0001)             # <<<<<<<<<<<<<<
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_field); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_5, NULL};
    __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_init_2, Py_False, __pyx_t_4, __pyx_callargs+1, 0) < (0)) __PYX_ERR(24, 15, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_1, __pyx_t_4, __pyx_callargs+1, 1) < (0)) __PYX_ERR(24, 15, __pyx_L1_error)
    __pyx_t_9 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_9) < (0)) __PYX_ERR(24, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/xencontext.pxi":16
 * 
 *     MIN: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0x0001)
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)             # <<<<<<<<<<<<<<
 * 
 *     def __post_init__(self):
*/
  __pyx_t_6 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_field); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_6, NULL};
    __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_init_2, Py_False, __pyx_t_4, __pyx_callargs+1, 0) < (0)) __PYX_ERR(24, 16, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_65535, __pyx_t_4, __pyx_callargs+1, 1) < (0)) __PYX_ERR(24, 16, __pyx_L1_error)
    __pyx_t_9 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_9) < (0)) __PYX_ERR(24, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/xencontext.pxi":18
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < IomemconRange.MIN or self.high < IomemconRange.MIN:
 *             raise ValueError(f"Memory address must be >= {IomemconRange.MIN:0=#6x}: {self}")
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13IomemconRange_1__post_init__, 0, __pyx_mstate_global->__pyx_n_u_IomemconRange___post_init, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[388])); if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_post_init, __pyx_t_9) < (0)) __PYX_ERR(24, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/xencontext.pxi":28
 *             raise ValueError(f"The low mem addr must be smaller than the high mem addr: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13IomemconRange_3__str__, 0, __pyx_mstate_global->__pyx_n_u_IomemconRange___str, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[389])); if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_9) < (0)) __PYX_ERR(24, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/xencontext.pxi":7
 * #
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)             # <<<<<<<<<<<<<<
 * class IomemconRange:
 * 
*/
  __pyx_t_5 = NULL;
  __pyx_t_6 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_dataclass); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 3 : 0)] = {__pyx_t_6, NULL};
    __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eq_2, Py_True, __pyx_t_8, __pyx_callargs+1, 0) < (0)) __PYX_ERR(24, 7, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_order, Py_True, __pyx_t_8, __pyx_callargs+1, 1) < (0)) __PYX_ERR(24, 7, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_frozen, Py_True, __pyx_t_8, __pyx_callargs+1, 2) < (0)) __PYX_ERR(24, 7, __pyx_L1_error)
    __pyx_t_4 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }

  /* "setools/policyrep/xencontext.pxi":8
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)
 * class IomemconRange:             # <<<<<<<<<<<<<<
 * 
 *     """A range of Xen IO memory ranges"""
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_IomemconRange, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_2};
    __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IomemconRange, __pyx_t_9) < (0)) __PYX_ERR(24, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/xencontext.pxi":36
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)
 * class IoportconRange:             # <<<<<<<<<<<<<<
 * 
 *     """A range of Xen IO ports"""
*/
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_IoportconRange, __pyx_mstate_global->__pyx_n_u_IoportconRange, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_kp_u_A_range_of_Xen_IO_ports); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_low, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(24, 36, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_high, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(24, 36, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_mstate_global->__pyx_kp_u_dataclasses_ClassVar_int) < (0)) __PYX_ERR(24, 36, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_mstate_global->__pyx_kp_u_dataclasses_ClassVar_int) < (0)) __PYX_ERR(24, 36, __pyx_L1_error)
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_annotations, __pyx_t_9) < (0)) __PYX_ERR(24, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/xencontext.pxi":43
 *     high: int
 * 
 *     MIN: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0x0001)             # <<<<<<<<<<<<<<
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_field); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 43, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_init_2, Py_False, __pyx_t_2, __pyx_callargs+1, 0) < (0)) __PYX_ERR(24, 43, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_1, __pyx_t_2, __pyx_callargs+1, 1) < (0)) __PYX_ERR(24, 43, __pyx_L1_error)
    __pyx_t_9 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_2);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 43, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_9) < (0)) __PYX_ERR(24, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/xencontext.pxi":44
 * 
 *     MIN: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0x0001)
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)             # <<<<<<<<<<<<<<
 * 
 *     def __post_init__(self):
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_field); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_5, NULL};
    __pyx_t_2 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_init_2, Py_False, __pyx_t_2, __pyx_callargs+1, 0) < (0)) __PYX_ERR(24, 44, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_65535, __pyx_t_2, __pyx_callargs+1, 1) < (0)) __PYX_ERR(24, 44, __pyx_L1_error)
    __pyx_t_9 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_2);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_9) < (0)) __PYX_ERR(24, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/xencontext.pxi":46
 *     MAX: dataclasses.ClassVar[int] = dataclasses.field(init=False, default=0xffff)
 * 
 *     def __post_init__(self):             # <<<<<<<<<<<<<<
 *         if self.low < IoportconRange.MIN or self.high < IoportconRange.MIN:
 *             raise ValueError(f"Port numbers must be >= {IoportconRange.MIN:0=#6x}: {self}")
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14IoportconRange_1__post_init__, 0, __pyx_mstate_global->__pyx_n_u_IoportconRange___post_init, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[390])); if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_post_init, __pyx_t_9) < (0)) __PYX_ERR(24, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/xencontext.pxi":56
 *             raise ValueError(f"The low port must be smaller than the high port: {self}")
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.low == self.high:
 *             return f"{self.low:0=#6x}"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_14IoportconRange_3__str__, 0, __pyx_mstate_global->__pyx_n_u_IoportconRange___str, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[391])); if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_9) < (0)) __PYX_ERR(24, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "setools/policyrep/xencontext.pxi":35
 * 
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)             # <<<<<<<<<<<<<<
 * class IoportconRange:
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_dataclasses); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_dataclass); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 3 : 0)] = {__pyx_t_5, NULL};
    __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eq_2, Py_True, __pyx_t_8, __pyx_callargs+1, 0) < (0)) __PYX_ERR(24, 35, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_order, Py_True, __pyx_t_8, __pyx_callargs+1, 1) < (0)) __PYX_ERR(24, 35, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_frozen, Py_True, __pyx_t_8, __pyx_callargs+1, 2) < (0)) __PYX_ERR(24, 35, __pyx_L1_error)
    __pyx_t_2 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }

  /* "setools/policyrep/xencontext.pxi":36
 * 
 * @dataclasses.dataclass(eq=True, order=True, frozen=True)
 * class IoportconRange:             # <<<<<<<<<<<<<<
 * 
 *     """A range of Xen IO ports"""
*/
  __pyx_t_6 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_IoportconRange, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  __pyx_t_10 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6};
    __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IoportconRange, __pyx_t_9) < (0)) __PYX_ERR(24, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/xencontext.pxi":82
 *         return d
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"devicetreecon {self.path} {self.context}"
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13Devicetreecon_1statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Devicetreecon_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[392])); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Devicetreecon, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(24, 82, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13Devicetreecon_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Devicetreecon___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[393])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Devicetreecon, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0x9a01f0f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Devicetreecon__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13Devicetreecon_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Devicetreecon___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[394])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Devicetreecon, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/xencontext.pxi":102
 *         return i
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"iomemcon {self.addr} {self.context}"
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Iomemcon_1statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Iomemcon_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[395])); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Iomemcon, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(24, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Iomemcon_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Iomemcon___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[396])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Iomemcon, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x69ba798, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Iomemcon__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8Iomemcon_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Iomemcon___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[397])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Iomemcon, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/xencontext.pxi":122
 *         return i
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"ioportcon {self.ports} {self.context}"
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9Ioportcon_1statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Ioportcon_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[398])); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ioportcon, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(24, 122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9Ioportcon_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Ioportcon___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[399])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ioportcon, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0x8f4c806, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ioportcon__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9Ioportcon_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Ioportcon___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[400])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Ioportcon, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/xencontext.pxi":142
 *         return p
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"pcidevicecon {self.device:0=#6x} {self.context}"
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12Pcidevicecon_1statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Pcidevicecon_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[401])); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pcidevicecon, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(24, 142, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12Pcidevicecon_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Pcidevicecon___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[402])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pcidevicecon, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0xa2b1ad7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Pcidevicecon__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12Pcidevicecon_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Pcidevicecon___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[403])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pcidevicecon, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/xencontext.pxi":162
 *         return p
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return f"pirqcon {self.irq} {self.context}"
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Pirqcon_1statement, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Pirqcon_statement, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[404])); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pirqcon, __pyx_mstate_global->__pyx_n_u_statement, __pyx_t_7) < (0)) __PYX_ERR(24, 162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Pirqcon_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Pirqcon___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[405])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pirqcon, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0x679ce62, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Pirqcon__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7Pirqcon_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Pirqcon___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[406])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7setools_9policyrep_Pirqcon, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_21DevicetreeconIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DevicetreeconIterator___reduce_c, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[407])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_21DevicetreeconIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DevicetreeconIterator___setstate, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[408])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_16IomemconIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IomemconIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[409])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_16IomemconIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IomemconIterator___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[410])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_17IoportconIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IoportconIterator___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[411])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_17IoportconIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IoportconIterator___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[412])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_20PcideviceconIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PcideviceconIterator___reduce_cy, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[413])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_20PcideviceconIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PcideviceconIterator___setstate, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[414])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15PirqconIterator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PirqconIterator___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[415])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15PirqconIterator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PirqconIterator___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[416])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Boolean(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2fa4582, 0x1b05210, 0x64345df, b'key, name, policy, state')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_3__pyx_unpickle_Boolean, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Boolean, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[417])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Boolean, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_5__pyx_unpickle_Conditional, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Conditional, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[418])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Conditional, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_ConditionalOperator(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x60d06d1, 0x114ed25, 0xeda7b2a, b'evaluate, key, policy, precedence, text, unary')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_7__pyx_unpickle_ConditionalOperator, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConditionalOperat, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[419])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConditionalOperat, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_9__pyx_unpickle_Bounds, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Bounds, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[420])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Bounds, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_BaseConstraint(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_11__pyx_unpickle_BaseConstraint, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseConstraint, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[421])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseConstraint, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_13__pyx_unpickle_Constraint, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Constraint, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[422])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Constraint, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Validatetrans(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x970accd, 0xa0ac3bd, 0xa61ac84, b'expression, key, policy, ruletype, tclass')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_15__pyx_unpickle_Validatetrans, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Validatetrans, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[423])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Validatetrans, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_17__pyx_unpickle_ConstraintExpression, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConstraintExpress, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[424])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConstraintExpress, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_ConstraintExprNode(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x74e0c7a, 0xe0fb366, 0x786ca01, b'_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19__pyx_unpickle_ConstraintExprNode, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConstraintExprNod, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[425])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ConstraintExprNod, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_21__pyx_unpickle_Context, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Context, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[426])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Context, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Default(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x685e83e, 0x6d2d570, 0xa55c637, b'_default, key, policy, ruletype, tclass')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_23__pyx_unpickle_Default, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Default, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[427])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Default, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_25__pyx_unpickle_DefaultRange, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_DefaultRange, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[428])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_DefaultRange, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_FSUse(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xdf395a0, 0x0aca751, 0xdc51194, b'context, fs, key, policy, ruletype')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_27__pyx_unpickle_FSUse, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FSUse, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[429])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FSUse, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_29__pyx_unpickle_GenfsFiletype, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_GenfsFiletype, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[430])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_GenfsFiletype, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Genfscon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe199f36, 0xddbf4ca, 0xfef56cc, b'context, filetype, fs, key, path, policy, tclass')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_31__pyx_unpickle_Genfscon, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Genfscon, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[431])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Genfscon, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_33__pyx_unpickle_InitialSID, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_InitialSID, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[432])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_InitialSID, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Category(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x249d746, 0x6d8ba27, 0x7c1bbae, b'_aliases, _value, key, name, policy')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_35__pyx_unpickle_Category, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Category, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[433])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Category, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_37__pyx_unpickle_Sensitivity, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Sensitivity, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[434])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Sensitivity, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_BaseMLSLevel(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_39__pyx_unpickle_BaseMLSLevel, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseMLSLevel, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[435])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseMLSLevel, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_41__pyx_unpickle_LevelDecl, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_LevelDecl, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[436])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_LevelDecl, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Level(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x18b60c0, 0x4282026, 0x97e1db4, b'_categories, key, policy, sensitivity')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_43__pyx_unpickle_Level, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Level, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[437])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Level, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_45__pyx_unpickle_Range, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Range, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[438])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Range, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_MLSRule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4c51559, 0x4a685de, 0x2be8a15, b'extended, key, origin, policy, rng, ruletype, source, target, tclass')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_47__pyx_unpickle_MLSRule, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_MLSRule, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[439])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_MLSRule, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_49__pyx_unpickle_Ibendportcon, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ibendportcon, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[440])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ibendportcon, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Ibpkeycon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd4355e5, 0x2bf550c, 0x2dd8c44, b'context, key, pkeys, policy, subnet_prefix')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_51__pyx_unpickle_Ibpkeycon, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ibpkeycon, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[441])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ibpkeycon, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_53__pyx_unpickle_Netifcon, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Netifcon, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[442])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Netifcon, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Nodecon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x5b0ce91, 0x405ab53, 0xd59413d, b'context, ip_version, key, network, policy')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_55__pyx_unpickle_Nodecon, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Nodecon, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[443])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Nodecon, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_57__pyx_unpickle_Portcon, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Portcon, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[444])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Portcon, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Common(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x4a0ce16, 0xf379c62, 0xb48e627, b'_perm_table, key, name, perms, policy')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_59__pyx_unpickle_Common, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Common, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[445])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Common, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_61__pyx_unpickle_ObjClass, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ObjClass, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[446])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ObjClass, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PermissionVectorIterator(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x3545a83, 0xc92dfa2, 0xc82ae23, b'curr, perm_max, perm_table, policy, vector')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_63__pyx_unpickle_PermissionVectorIterator, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PermissionVectorI, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[447])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PermissionVectorI, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_65__pyx_unpickle_PolicyObject, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyObject, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[448])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyObject, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicySymbol(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x00b0124, 0xdc9768d, 0x93ad430, b'key, name, policy')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_67__pyx_unpickle_PolicySymbol, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicySymbol, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[449])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicySymbol, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_69__pyx_unpickle_Ocontext, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ocontext, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[450])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ocontext, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PolicyIterator(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x823412d, 0x9f00fad, 0xf4af8b5, b'policy')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_71__pyx_unpickle_PolicyIterator, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyIterator, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[451])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyIterator, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_73__pyx_unpickle_PolicyCapability, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyCapability, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[452])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyCapability, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_RoleAllow(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x9f93d87, 0x5c19e0d, 0xa55d28c, b'extended, key, origin, policy, ruletype, source, target')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_75__pyx_unpickle_RoleAllow, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RoleAllow, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[453])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RoleAllow, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_77__pyx_unpickle_RoleTransition, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RoleTransition, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[454])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RoleTransition, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Role(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x22ceaf7, 0xe4e7f46, 0x9a90b19, b'_types, key, name, policy')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_79__pyx_unpickle_Role, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Role, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[455])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Role, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_81__pyx_unpickle_PolicyRule, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyRule, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[456])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PolicyRule, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_BaseTERule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd397518, 0xa49d0ca, 0x8b22cbf, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, policy, rule_string, ruletype, source, target, tclass')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_83__pyx_unpickle_BaseTERule, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseTERule, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[457])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseTERule, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_85__pyx_unpickle_AVRule, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AVRule, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[458])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AVRule, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_XpermSet(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_87__pyx_unpickle_XpermSet, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_XpermSet, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[459])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_XpermSet, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_89__pyx_unpickle_IoctlSet, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_IoctlSet, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[460])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_IoctlSet, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_AVRuleXperm(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x7ba1f46, 0x2e7617f, 0x870029e, b'_conditional, _conditional_block, _xperm_type, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_91__pyx_unpickle_AVRuleXperm, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AVRuleXperm, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[461])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AVRuleXperm, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_93__pyx_unpickle_TERule, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TERule, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[462])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TERule, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_FileNameTERule(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x8b9259a, 0x0e23cf4, 0x58f8522, b'_conditional, _conditional_block, _xperm_type, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_95__pyx_unpickle_FileNameTERule, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FileNameTERule, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[463])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FileNameTERule, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_97__pyx_unpickle_BaseType, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseType, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[464])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_BaseType, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Type(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf433841, 0x8a57232, 0x18d2e7e, b'_aliases, _attrs, ispermissive, key, name, policy, value')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_99__pyx_unpickle_Type, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Type, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[465])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Type, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_101__pyx_unpickle_TypeAttribute, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TypeAttribute, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[466])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TypeAttribute, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_User(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xb60edeb, 0xd4755c5, 0x6debf30, b'_level, _range, key, name, policy, roles')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_103__pyx_unpickle_User, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_User, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[467])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_User, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_105__pyx_unpickle_Devicetreecon, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Devicetreecon, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[468])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Devicetreecon, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Iomemcon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x69ba798, 0xe436981, 0x45b5f78, b'addr, context, key, policy')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_107__pyx_unpickle_Iomemcon, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Iomemcon, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[469])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Iomemcon, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_109__pyx_unpickle_Ioportcon, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ioportcon, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[470])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Ioportcon, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Pcidevicecon(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xa2b1ad7, 0x9b7410e, 0x6756798, b'context, device, key, policy')
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_111__pyx_unpickle_Pcidevicecon, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Pcidevicecon, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[471])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Pcidevicecon, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_113__pyx_unpickle_Pirqcon, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Pirqcon, NULL, __pyx_mstate_global->__pyx_n_u_setools_policyrep, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[472])); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Pirqcon, __pyx_t_7) < (0)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep.pyx":1
 * # Copyright 2017-2018, Chris PeBenito <pebenito@ieee.org>             # <<<<<<<<<<<<<<
 * #
 * # SPDX-License-Identifier: LGPL-2.1-only
*/
  __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_7) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  if (__pyx_m) {
    if (__pyx_mstate->__pyx_d && stringtab_initialized) {
      __Pyx_AddTraceback("init setools.policyrep", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    #if !CYTHON_USE_MODULE_STATE
    Py_CLEAR(__pyx_m);
    #else
    Py_DECREF(__pyx_m);
    if (pystate_addmodule_run) {
      PyObject *tp, *value, *tb;
      PyErr_Fetch(&tp, &value, &tb);
      PyState_RemoveModule(&__pyx_moduledef);
      PyErr_Restore(tp, value, tb);
    }
    #endif
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init setools.policyrep");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #else
  return __pyx_m;
  #endif
}
/* #### Code section: pystring_table ### */
/* #### Code section: cached_builtins ### */

static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) {
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_super); if (!__pyx_builtin_super) __PYX_ERR(1, 26, __pyx_L1_error)
  __pyx_builtin_map = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_map); if (!__pyx_builtin_map) __PYX_ERR(2, 241, __pyx_L1_error)
  __pyx_builtin_sorted = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_sorted); if (!__pyx_builtin_sorted) __PYX_ERR(3, 168, __pyx_L1_error)
  __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_id); if (!__pyx_builtin_id) __PYX_ERR(4, 27, __pyx_L1_error)
  __pyx_builtin_sum = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_sum); if (!__pyx_builtin_sum) __PYX_ERR(5, 123, __pyx_L1_error)

  /* Cached unbound methods */
  __pyx_mstate->__pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_get.method_name = &__pyx_mstate->__pyx_n_u_get;
  __pyx_mstate->__pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_items.method_name = &__pyx_mstate->__pyx_n_u_items;
  __pyx_mstate->__pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop;
  __pyx_mstate->__pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_values.method_name = &__pyx_mstate->__pyx_n_u_values;
  __pyx_mstate->__pyx_umethod_PyList_Type_pop.type = (PyObject*)&PyList_Type;
  __pyx_mstate->__pyx_umethod_PyList_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop;
  __pyx_mstate->__pyx_umethod_PySet_Type__update.type = (PyObject*)(&PySet_Type);
  __pyx_mstate->__pyx_umethod_PySet_Type__update.method_name = &__pyx_mstate->__pyx_n_u_update;
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: cached_constants ### */

static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "setools/policyrep/netcontext.pxi":284
 * 
 *     def statement(self):
 *         return f"nodecon {self.network.with_netmask.replace('/', ' ')} {self.context}"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u__25, __pyx_mstate_global->__pyx_kp_u_); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(15, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]);

  /* "setools/policyrep/initsid.pxi":11
 * #
 * # Binary policy does not contain the SID names
 * SELINUX_SIDNAMES = ("undefined", "kernel", "security", "unlabeled", "fs", "file", "file_labels",             # <<<<<<<<<<<<<<
 *     "init", "any_socket", "port", "netif", "netmsg", "node", "igmp_packet", "icmp_socket",
 *     "tcp_socket", "sysctl_modprobe", "sysctl", "sysctl_fs", "sysctl_kernel", "sysctl_net",
*/
  __pyx_mstate_global->__pyx_tuple[1] = PyTuple_Pack(28, __pyx_mstate_global->__pyx_n_u_undefined, __pyx_mstate_global->__pyx_n_u_kernel, __pyx_mstate_global->__pyx_n_u_security, __pyx_mstate_global->__pyx_n_u_unlabeled, __pyx_mstate_global->__pyx_n_u_fs, __pyx_mstate_global->__pyx_n_u_file, __pyx_mstate_global->__pyx_n_u_file_labels, __pyx_mstate_global->__pyx_n_u_init_2, __pyx_mstate_global->__pyx_n_u_any_socket, __pyx_mstate_global->__pyx_n_u_port, __pyx_mstate_global->__pyx_n_u_netif, __pyx_mstate_global->__pyx_n_u_netmsg, __pyx_mstate_global->__pyx_n_u_node, __pyx_mstate_global->__pyx_n_u_igmp_packet, __pyx_mstate_global->__pyx_n_u_icmp_socket, __pyx_mstate_global->__pyx_n_u_tcp_socket, __pyx_mstate_global->__pyx_n_u_sysctl_modprobe, __pyx_mstate_global->__pyx_n_u_sysctl, __pyx_mstate_global->__pyx_n_u_sysctl_fs, __pyx_mstate_global->__pyx_n_u_sysctl_kernel, __pyx_mstate_global->__pyx_n_u_sysctl_net, __pyx_mstate_global->__pyx_n_u_sysctl_net_unix, __pyx_mstate_global->__pyx_n_u_sysctl_vm, __pyx_mstate_global->__pyx_n_u_sysctl_dev, __pyx_mstate_global->__pyx_n_u_kmod, __pyx_mstate_global->__pyx_n_u_policy, __pyx_mstate_global->__pyx_n_u_scmp_packet, __pyx_mstate_global->__pyx_n_u_devnull); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(13, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[1]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]);

  /* "setools/policyrep/initsid.pxi":17
 * 
 * 
 * XEN_SIDNAMES = ("xen", "dom0", "domxen", "domio", "unlabeled", "security", "irq", "iomem", "ioport",             # <<<<<<<<<<<<<<
 *     "device", "domU", "domDM")
 * 
*/
  __pyx_mstate_global->__pyx_tuple[2] = PyTuple_Pack(12, __pyx_mstate_global->__pyx_n_u_xen, __pyx_mstate_global->__pyx_n_u_dom0, __pyx_mstate_global->__pyx_n_u_domxen, __pyx_mstate_global->__pyx_n_u_domio, __pyx_mstate_global->__pyx_n_u_unlabeled, __pyx_mstate_global->__pyx_n_u_security, __pyx_mstate_global->__pyx_n_u_irq, __pyx_mstate_global->__pyx_n_u_iomem, __pyx_mstate_global->__pyx_n_u_ioport, __pyx_mstate_global->__pyx_n_u_device, __pyx_mstate_global->__pyx_n_u_domU, __pyx_mstate_global->__pyx_n_u_domDM); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(13, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[2]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[2]);

  /* "setools/policyrep/selinuxpolicy.pxi":346
 *         raise InvalidBoolean(f"{name} is not a valid Boolean")
 * 
 *     def lookup_category(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():
*/
  __pyx_mstate_global->__pyx_tuple[3] = PyTuple_Pack(1, Py_True); if (unlikely(!__pyx_mstate_global->__pyx_tuple[3])) __PYX_ERR(5, 346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[3]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[3]);
  #if CYTHON_IMMORTAL_CONSTANTS
  {
    PyObject **table = __pyx_mstate->__pyx_tuple;
    for (Py_ssize_t i=0; i<4; ++i) {
      #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
      #if PY_VERSION_HEX < 0x030E0000
      if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
      #else
      if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
      #endif
      {
        Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);
      }
      #else
      Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
      #endif
    }
  }
  #endif
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}
/* #### Code section: init_constants ### */

static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
  CYTHON_UNUSED_VAR(__pyx_mstate);
  {
    const struct { const unsigned int length: 10; } index[] = {{1},{10},{3},{4},{5},{54},{270},{24},{20},{37},{31},{23},{53},{33},{34},{63},{44},{179},{20},{21},{27},{29},{21},{34},{32},{36},{34},{30},{42},{35},{39},{30},{33},{53},{39},{109},{16},{50},{59},{45},{47},{9},{26},{26},{62},{18},{21},{4},{6},{10},{179},{14},{24},{26},{26},{24},{24},{20},{22},{16},{18},{21},{40},{36},{32},{57},{57},{49},{39},{43},{23},{29},{33},{27},{3},{2},{2},{1},{1},{1},{3},{1},{2},{1},{1},{2},{3},{0},{2},{1},{2},{1},{1},{3},{1},{3},{3},{5},{3},{3},{1},{1},{2},{2},{1},{1},{2},{1},{2},{2},{2},{2},{8},{9},{7},{15},{10},{2},{5},{2},{9},{6},{21},{2},{25},{14},{15},{7},{27},{17},{6},{41},{2},{9},{9},{57},{13},{13},{10},{10},{9},{9},{10},{44},{48},{45},{13},{19},{18},{18},{8},{14},{23},{25},{24},{31},{21},{22},{23},{32},{43},{23},{20},{28},{27},{20},{30},{20},{20},{27},{27},{36},{21},{9},{2},{6},{7},{9},{9},{50},{8},{8},{13},{59},{48},{2},{13},{8},{10},{8},{8},{7},{5},{7},{26},{34},{36},{47},{29},{31},{2},{17},{71},{93},{71},{81},{82},{72},{12},{17},{30},{28},{32},{29},{29},{34},{31},{29},{25},{29},{32},{30},{28},{28},{30},{26},{26},{35},{28},{30},{26},{26},{32},{4},{14},{5},{7},{9},{5},{6},{11},{29},{31},{18},{21},{24},{26},{22},{13},{31},{16},{13},{10},{11},{9},{14},{32},{34},{12},{30},{32},{23},{10},{28},{30},{18},{8},{26},{28},{16},{19},{15},{7},{22},{40},{42},{25},{27},{17},{6},{14},{24},{26},{16},{8},{23},{41},{43},{23},{41},{43},{29},{26},{28},{16},{18},{6},{21},{39},{41},{24},{26},{16},{11},{23},{41},{43},{29},{19},{37},{39},{25},{19},{37},{39},{28},{29},{25},{43},{45},{31},{40},{29},{31},{20},{22},{23},{21},{22},{23},{10},{22},{40},{42},{28},{18},{36},{38},{43},{28},{20},{38},{40},{26},{30},{18},{36},{38},{24},{18},{18},{28},{30},{20},{7},{25},{27},{17},{7},{7},{12},{17},{36},{30},{32},{22},{15},{12},{31},{25},{27},{17},{13},{21},{39},{41},{31},{33},{23},{15},{33},{35},{21},{4},{5},{13},{31},{33},{13},{23},{25},{15},{5},{12},{20},{30},{32},{19},{14},{22},{40},{42},{34},{28},{32},{34},{21},{24},{13},{31},{33},{24},{8},{16},{34},{36},{24},{42},{44},{26},{28},{18},{13},{15},{33},{35},{21},{11},{12},{20},{38},{40},{30},{32},{22},{9},{17},{35},{37},{14},{28},{22},{27},{29},{19},{10},{18},{36},{38},{28},{30},{20},{14},{15},{12},{13},{14},{12},{13},{12},{11},{18},{13},{11},{11},{8},{26},{28},{8},{16},{34},{36},{13},{27},{21},{26},{28},{18},{9},{17},{35},{37},{14},{28},{22},{27},{29},{19},{5},{9},{24},{42},{44},{30},{27},{29},{19},{23},{25},{42},{15},{19},{3},{3},{11},{7},{15},{33},{35},{25},{27},{14},{17},{11},{8},{16},{34},{36},{26},{28},{18},{8},{19},{11},{7},{16},{15},{33},{35},{25},{27},{17},{8},{23},{41},{43},{26},{28},{20},{17},{18},{22},{8},{16},{34},{36},{26},{28},{12},{20},{38},{40},{30},{32},{22},{24},{42},{44},{30},{7},{15},{33},{35},{25},{27},{17},{16},{24},{42},{44},{34},{36},{26},{10},{17},{21},{19},{18},{17},{14},{32},{34},{20},{12},{21},{25},{30},{32},{22},{10},{28},{30},{18},{17},{12},{30},{32},{19},{12},{7},{15},{33},{35},{15},{12},{26},{20},{25},{27},{17},{14},{18},{20},{12},{5},{23},{25},{9},{11},{15},{4},{9},{17},{35},{37},{23},{27},{29},{16},{19},{19},{37},{39},{19},{37},{39},{14},{22},{40},{42},{28},{32},{34},{21},{24},{22},{24},{14},{10},{18},{12},{16},{13},{22},{26},{38},{31},{33},{55},{19},{20},{24},{21},{21},{26},{25},{22},{28},{21},{23},{27},{24},{25},{23},{24},{20},{28},{29},{26},{27},{28},{26},{26},{25},{32},{25},{33},{29},{25},{22},{23},{22},{27},{22},{21},{22},{23},{19},{27},{21},{28},{19},{19},{11},{26},{44},{46},{32},{29},{31},{19},{22},{21},{8},{14},{6},{14},{32},{34},{20},{29},{16},{24},{26},{13},{16},{10},{4},{13},{4},{13},{28},{46},{48},{28},{46},{48},{34},{31},{33},{21},{24},{20},{23},{19},{37},{39},{19},{37},{39},{25},{10},{30},{48},{50},{7},{22},{24},{12},{15},{11},{14},{18},{36},{38},{24},{5},{4},{19},{37},{39},{19},{37},{39},{22},{24},{29},{14},{13},{21},{39},{41},{31},{33},{23},{18},{30},{27},{30},{17},{12},{8},{19},{26},{28},{15},{1},{1},{2},{1},{7},{5},{10},{3},{15},{3},{10},{4},{18},{10},{10},{15},{1},{2},{8},{4},{11},{5},{5},{6},{6},{1},{10},{5},{5},{8},{9},{17},{7},{18},{5},{3},{11},{6},{7},{25},{11},{17},{12},{9},{11},{8},{5},{3},{4},{1},{9},{11},{5},{4},{5},{12},{7},{15},{11},{13},{12},{12},{12},{8},{12},{4},{5},{15},{32},{6},{14},{7},{8},{5},{3},{7},{3},{4},{5},{4},{5},{5},{6},{9},{14},{1},{7},{4},{6},{2},{5},{8},{9},{6},{9},{16},{18},{10},{11},{7},{5},{9},{4},{11},{8},{17},{10},{6},{28},{10},{18},{6},{2},{11},{12},{12},{7},{8},{7},{9},{3},{9},{11},{12},{6},{5},{7},{2},{2},{8},{4},{1},{13},{10},{11},{2},{11},{6},{5},{23},{23},{4},{8},{4},{11},{3},{5},{5},{9},{6},{10},{10},{9},{4},{4},{3},{13},{12},{5},{9},{1},{1},{6},{3},{4},{6},{2},{2},{8},{24},{5},{10},{6},{8},{8},{7},{6},{14},{23},{15},{12},{13},{14},{12},{12},{11},{18},{11},{19},{15},{11},{3},{8},{5},{8},{3},{15},{8},{4},{13},{11},{9},{9},{12},{8},{16},{10},{15},{1},{4},{8},{5},{5},{5},{9},{6},{10},{15},{7},{8},{8},{4},{11},{5},{4},{8},{3},{8},{2},{13},{7},{8},{13},{8},{13},{12},{9},{8},{2},{5},{5},{1},{6},{4},{13},{5},{8},{7},{6},{10},{3},{4},{8},{13},{10},{11},{11},{7},{14},{12},{11},{10},{21},{26},{29},{27},{25},{23},{22},{21},{23},{21},{26},{34},{25},{33},{35},{22},{22},{27},{28},{20},{29},{28},{23},{27},{24},{25},{23},{23},{24},{20},{24},{22},{23},{22},{23},{23},{27},{39},{22},{31},{29},{27},{25},{27},{22},{20},{19},{24},{29},{26},{21},{19},{28},{19},{28},{23},{14},{12},{1},{2},{2},{2},{6},{16},{6},{23},{24},{9},{10},{17},{13},{6},{6},{7},{4},{5},{6},{6},{10},{15},{5},{3},{8},{14},{1},{15},{11},{4},{8},{4},{7},{4},{13},{11},{12},{10},{11},{17},{12},{19},{9},{9},{6},{6},{4},{5},{5},{5},{9},{26},{4},{7},{3},{24},{25},{6},{5},{3},{5},{12},{6},{11},{6},{10},{9},{13},{15},{10},{15},{9},{1},{2},{2},{2},{6},{6},{3},{10},{7},{8},{5},{10},{10},{11},{28},{11},{11},{10},{15},{14},{10},{5},{6},{1},{2},{2},{2},{3},{5},{9},{9},{6},{12},{10},{5},{13},{5},{6},{6},{4},{7},{8},{7},{12},{1},{3},{10},{1},{11},{2},{11},{11},{11},{51},{11},{6},{11},{11},{11},{6},{2},{94},{11},{11},{13},{26},{84},{19},{84},{94},{2},{2},{40},{28},{80},{49},{49},{61},{33},{143},{105},{88},{31},{119},{129},{129},{129},{43},{47},{19},{25},{407},{232},{21},{32},{14},{19},{28},{80},{24},{29},{23},{63},{20},{46},{60},{62},{101},{40},{40},{40},{89},{89},{23},{40},{24},{28},{23},{47},{11},{41},{37},{40},{20},{77},{116},{21},{106},{18},{50},{38},{106},{77},{99},{29},{28},{28},{7},{9},{7},{118},{152},{21},{25},{33},{33},{109},{26},{21},{29},{29},{23},{17},{7},{9},{14},{20},{21},{161},{25},{25},{38},{47},{25},{13},{9},{13},{13},{15},{23},{124},{19},{11},{19},{25},{11},{75},{21},{29},{19},{23},{42},{63},{19},{29},{25},{63},{6},{2},{9},{64},{11},{160},{357},{232},{150},{132},{132},{115},{136},{159},{151},{132},{151},{131},{132},{471},{471},{422},{467},{520},{203},{162},{136},{206},{142},{155},{278},{201},{201},{131},{97},{132},{126},{151},{201},{160},{160},{190},{131},{131},{190},{242},{101},{152},{133},{133},{133},{115},{115},{115},{119},{205},{137},{277},{23},{2},{2},{2},{2},{2},{2},{2},{2},{11},{2},{2},{88},{63},{11},{11},{8},{8},{18},{11},{55},{55},{55},{57},{55},{56},{58},{59},{55},{55},{58},{55},{58},{55},{58},{55},{11},{8},{8}};
    #if (CYTHON_COMPRESS_STRINGS) == 3 && __PYX_LIMITED_VERSION_HEX >= 0x030e0000 /* compression: zstd (11687 bytes) */
const char* const cstring = "(\265/\375`\"\241\355l\001z\034\211<G\340\014\351\0010\314\363D\236\206k1\233\347y\236\347y\236\347y\236\347\024\017'\351j\337H\262\237\221\247\271m\037n\345\345\221ba\375]\326\253\324\005\014>\\(W\347\261P\364\211\316\301A}\320c\303Q\016\362\264\034w\003\223\003\346\003\251\006\025jT\311\304hu\373\325\250\275\254k\233\276M\224\352%\223CUt\307P\026\372I\001\205\022\367.Q^\373.\212$j\207\310B\247\200n\334i\372\355\271J\352Q\365\033\355'\315\354\275\233\270\024U\216\020\322\255B\340\262sF\232,P\243'#\nv\356\276G:\n\252\247k\007\301T\2235\3254\3114EAmU\203\233TW\356\002a\002\026\241\242\350M\324$O\255z\024t-AQ\334\344ZnU\024a\246\337\350\211R\216\250I\343\245\327&\311{G\275ivt\367MR\202j\036\243_'\337A\255'\234\247\243\t\216&\252\223\333\226\313u\337\271\014,\212\221~\237\340\213i\204\363$\021l\243JP\032\364\246\272e\335,\205\300\223\255\372M\232\266]\ny\324\014Ru\017J{]\226()Z\214D\341\343\210\002\242]\233'GE\230\022\022\242\"\024\224\016%\"\"EE\247\013/B \030D\004\302\030\201\026J@H@\300\023\n\026\025\026\020\300\027\020\005D\225\240\300\200''$ \010\010\352\245\302\251B\005\320\010L\327\216\213\000\366\204<(\017\370\"\213\231\262\363\324\264\327\220\331\321\234\213\237+\254\367M\222\253\013\325i\253\327%\010\366\230>a6p\273:\014\204\204E\301\257\243\327\345\336\331\346\251M\017z\225\263X \270\0255qv\252\241H\346\303\250\001\265\373\251i\266\315TGr^\034\351:]y\016\204\255\300\323\\\307\265\203}\253+\022VPX*\026\210\252\333\223\271s\217\346)\3639\275=\327)\332(\327\001g*\277\371\255\356\236]r\035T?9\177\251\\\036\335\264}\2464\323\2030\261\255\003V\240\000V\260P\226:G(\010\207\243h\307A\375\200'e\351\267\353\364$\337\235\006|)Mt\205JS\256\316\200(\022\364\034\345%h\204\362\236\334\037F\016\032\031u\030*F\324a\350\256\301\301\341\321\001\273IS\367.\321\355q\335\304\225\347\r\010r\225\253\252\352\265c\252\366~w\020\275qt\206\2562\023q\367U\354\036\267=\rh\302t/\321\225\217&\252s\333\366\211\022\271\027E\275U\031\320\237\334\370i\343`\252i\376E\346u\3525\2154\273\036\365""\246iT]\375VUn\332\264L\005\226\252\366\256\256r\030\270\273\216AQ\217nU]\275&\371\tr\017\372\224\266\275\250r\360D<\331\347\211\212r\320w\275O\320\313\2041;}\237\253\n\272pr\324M[\321\r\242\347\250{\337jz\352\022\3452\240\276q\025\334g\0145{\247m\032\250a\005\242\373\307\364\252NG\0235ahg\255v\014\325*\030\242v\232\363\340\311I\356\271\232\222^\345i\211P\020x\222\3230\221D\345\236\\U\337\321t\223\270}\"\363|\354\233\3240u{\324\004\267\314\203]\313\372\356]\237\344Ln\337\370\2000\016\3228\331M\260\233\262\227\005j\257\247\266\201\376\\5l\227%\252\301\334\236\201\345&\321\255n\330VQfz\337@\r\312\274y\343\246'\315\022\004A\013\024*\206\332\340\356+\t\210*\267\t3\311\235vp\217\240\357+\r\314\221\346\311S0\247j\324\034\301\020D\341Z\032T\210\200k\211\320\000\267\022\301\310\310\302(\002Q\205\005\021\021\030$\254[rA\002\177\245\025oP\300\265\327tC\\\223;cCX\023\253\266|\332\215\326\000\306\210\313\3236hM\255\252\325\246\370#}\244\222A@Wc-*\000P\324\\\355\212p|\025\366\304\366\030\006gxm\016\264C\260\n\030\272a\313\363\372&\263i^\211\374\002\027:\362\315\320\322J`5.t$\267\326\336TP\354Z/\212.AJ\002]\202\237\200bw\002\321z7^\322KQ#\261\031%n\331\266\332\225fUX\r\014\235~CT\256\206Krq\330\215\013]\212-\300\266\034\t\240\320\325\332\225\366\324\022\221\332\0316\305\226XS\005\000\213\021\241\210\223\\\306\255\370\007\336\000?\311\235iSm\221.\024\221\202{\336\360=y{\334\320\r\221ip\010L\002\241ua\375\021\201\214\235)&\305\271\327\301kzK8>G\206\216\324\272X\333\021\201\013\335N\353\2533N\306\305\034\261\nN\301%o\351\266\\\007\005\276F\005\200\211\021=<\237'\374\241\311\277\320\"\370~(\242\005\207\360\204\267\025\333`\r\267\274-\356\311\0051\301-\357\3515\251\275+\357\001\327\024\267\300'8\345H\300\267k\035\205G\027\024\273\024\253A\241\223\370v\025\024:\022\353:\262\211\010\360\355jl\007\205\356\244\340/\250\000\2201\202$\202\024\213\300&8\365\322\270)\267\301\t\246yS\357\203\024[\2039`\022\034\341\323\221D\344\320\215\303\321:\332S\024]\323rUYS\326\324\272\372=\312d\333\223>%""\275W\361)>\345=\315\2063\307\016\023{\256\367\265\247\252\247\371\336\313\335I\336}7O\257rY\027\273\272\222\273\247\236\354\334w\261\337:-\327Eu\223\372\324\033\267\305\356U\0255EM\251\352\251\327\332\250\275\215\334\350J[\373\214\3342\222L\273\252\323T\3352\317\273\230\"\246x\312\323\023\275m\025\215uZG\267\251zt\213\\-y?i\332o\356\3153\355\233$\267\232\212\270\02455m\\\273(\236\3509\232gG\367)\212)g\352\274\315JN\233\235\033U\367l\366A\355\335\024\273)\266\254\330tj\212\251\311S\235\306\314\322Li\244i\246\310R\262\334\230\306\306\365\034Ou\307b\034\007];n\326\365P?\367\250O\221\303LXyn\023&\363:\025IX\312\367\366(/\321\215\343&O\316L\004\032\311U\263<\317\025\205m\025\355'\217\255\343.S\222,i\353\306y\262\237\243h\226\"\271\317\223\223\375$w\347'9nR\253^<EUF\226\247)#QS\313Hr\035\273(\316\316q\024Go\226\253\356\0335\375\312UN\242\270I\242\271\256{L\325~\317H\336\305\\\307i-\212&]G\365#\212f\017\312M\224G\367\250\032\302\333\250_2\277\252/tFj\357\352\333\233\\T\2718\212\245\331\313\336e\244&w\314\245\312\tu\304\037\036\235\025\327y\205\271\221\306K\330\336\3618\\\216\2434,\026\353\225\356]\346RN\222\273\266s\336<\315Q\247Z\206\265{X\254\216\242:k\345\342:9\\\207\353\350tsFg\225\363\023\346\334\270H\356\031\225\217\264\234kf\345:\265\251\372.\372\316\323\325*l\261\261V6\032\272\210\322\264N\272\3168?]4\"\215\2530T\217\272\356\316\2033a\250)\256\252G\211\260\215Z\271\005]\2164}R\010\251\026A\206\003\223\256\006\343\326\264>\254\001SP\273\201\361\232%lR\023\244\003\030\271\232\227\203\344\300\367\002\352 \364\205X_\244\200<\022\227\266W\2772W\244@i[0\257\314\247\331E\336\361\304\310k\362\361CJ\310\314h\271%7\220]b\t%-\007k2\302\247\365sX\037G\206\305\033HJ\376\251vr\t\241w+\333\200-\200\261\303RJ\\ V\201\244\334\002\246\330\317z$\243\331\216\n\000\013F\354\"|\221\327{\2032^<\353\200\024\300\035m&\317\356\260\261\214\226\001\006\200\002ZD\020\320'\032\221=\330\333r\0003\367\3101\222\007\361\213\256\3373\307\344\030\331\307\343-\tM\361k\005\344\267\010.:.t&\367\005""\257\017t\255\3571\253\202\340\237\367\3074 \234\021\310\257\370\005\336&<\255?$;\260@\362I\264,\213e\016D\010\374\014\241\327\267\221\220gb\n\016\276\204\313\322\226Z\354J\3170@\260\304\211<\306+\024\357\214\252\325h[v-Wb\205\355\362\227<\377e\336&\337d\347\010\343\302\005ie(\270\370\030)\241\026C\354\360;\000} \327\367:\023~\305\004w\023\250Y\320\346\334\304\320L-I\222A\307R\246\216\211yF\326\220\211mf>x\255\010[\332\314\"#|\263ii\363\304\334!\253q\200\236\323L#\233\304^\334\001\247Pt-\0337\244=\265\247\257\265\270\331&\003\305)\037,r\362\221\037\304.\345\213\"\005\210\275%\004~\215-\240b}t45G\027\237.<\302\220 \205\256\270\203\266ZS;\333\365\260\033\254*\214Sq\r\274\2762/\217\221\213\306m#5\337\250>\346\227\034\31261\005\221\037rr{\313\000\203\016\007\273\204\374\317\005[\361\n\376p\356H\306\317P\321r\310\203\n\266v\264\323\222U)\237\346\005y\211\266i\037\r\220\320\n`M\034\363\020\r\317\267\315\001\346q%>\3054\022\336\007s\213| V#\234Hp\033\314\031\344\224,C\004\223@\367\343\363of\230|\213w\342\230\216cb\037\022\027$,\362f=\207\314\336L\261\022\367\300,'\272\020v}\313\240\365Q\361K\330\017S\373b\023\204\354\307v\0348\2429\302\320\345\264|\010\001~FX\027\255\333\223\366v\222c\036\374\323\333O \274!\014\002[\354$h\301\030(\261P\315\035\211\201/\336\n;\022\217\327+\361\226|\324`\n;\323\234\023_\034\000\023\350Zp\n\\\344Rh\021x\314\274\253;\342\241\363\330\265:\333\261\241#\335\270\016\014\244b\030\223oz=:\332\217\215\235\206U\340\022\354z\037\274\260\032\031\023\273\260M\240#\311\035\375\rpr-\332\240\243p\300\210\032\203\017]\313\265\265\034\036\013\016d\350L\355\207f9N\255Egq\261\207\365\367\326\\\334\215\004\263\310t\033b\240\345n\210\310\354|z\376j\376fT\213\365Y\013$,\3701\273\227\353\227\314\245\226\007\304#<\001\317\274\032(\320\206\277\341\347\377\354^\177\302\354e\224\t\241l\004\357\300\266\322\313\342\322j\262\226i\332r\027\316\251\271F\276\210k\260\213\202\037\266&'\371\204c`Xw\035\270'\033#o\310$9\250\343}\255\265\335\211\344\216\255J[\303\256\332\303""\367\300\341s\010\372A\031\033\032\272\224\354c\035[@\375\020\214\013\037c\300t\212M\361\010\314\3636\010\331\370\033\031\272\260\005q\355\374rn\315+\371\223k\261i\202gjK\200\315\360\032n\301\017^\0367\001\013I^\221O\262E<\363\240-\331\026\233Rk\375\312\353rW\255\221\000\327\312\321E\005\000\017\335\032\300\321!\370\236\355\010-x\003V_\0247T_\024W\217\314h\034\202\002:\353\270\374\323\254\003\2433\343\264\374\026\314R#\t\275\240\346\014,_\343\264&\310\250+\001\346\237\342\027T\246Q\371\032\177\036 c\210\360k/\204\n'Y\0076!i\305\244\276\005\222\214\202?N\036m\213\216\007\300\024\024-\013\372\336\212p\337L\300\267#iY\215wZ\316\366\004{\251\361U\340\242D\\\221\357\353\027\365}\315\352\267\344\024\223Z\023|jw\376\016L\336\020'\200%\004pYV0\351\353\373\314/2\361\212\340\213\300\230\376n\207H\005\306#\363}L\300$\005\245l\\f\022N\033Zd\340\265\202\374\371\264\270\276]\300\261\253\231\021\260\250$i\364!\3661\313\375\\k\336\230+ZLX\000\227\017E\305;\363A\316\006\020\254\204r\374\363\221\r\271\302F\304-[\005FE\277\210|\r\270\344<v\254\037\324\"Q\201\367{s)\254*\334\254\302\014'\3237\273d\t\225\353\225h\201\321t\000\335\250T=\335\005\267\341\317hrD\251\235k\347\273\314\002V\214&\0208\350\320\323\223!\203\314\274R\220#\023\342DO\205\027\272\276\213\365Y^\037\030\256Gz\343\330\343\372{\276\311\0044`\325\353\343\276x\032\0040\376\205 q#\221!\203\204\204\314GD\364\335n\237\367EE\336\272\376\240\037\215\366\301`_\207\016\037\020\320\347\343\363\355\354|77\237\214\314\355VJ\323\222L\306\201C\211\207\247ts\203\303y\263\331\317O\021\355\323ll\210\210\274\333\355\303\007O\024\275\240\240\325\312\366\365|<<\237\216\316GC\363\305\304\224B\204(\r\r\225z/\315f\245X\254T\226%Q,\375\374\224X\254\231\031\034\034/\204\027\302\003\001\242V+K\036\036\257\325J\355\004\220t,\206I}\351\307\371'\223}\036<|\0348|\0336|\257\327\227\223\363\251T\337\027\226@\200(\345r%U-}\370@\222\245\016\035J>>\245\234\234\322jU\nC\032\3153M\017\006\003\002\362vv<\035\035\032\232\333\277\245?e\375\216/vu\274\026J7""\245\014\031J44\236\221\221\227\313yi\352\235\247\247\265'$\344i\320\260\376\265\303\004\006\243\376\232&\347\363q\245\231E\256\211\327\024\010\243od\3736\231V\231\267\376(\"\372D\376{\323L\317x22$\242\363\237\262/k0\363\334<\302\035\002\024\323\ng:\021\325<h\314*\233\255\365\340D4\376\261\347\313z\311\214\273z\251\307\271'\223y\036<x\0348x\0336x\257\227\227\223\343\251T^\030\222@\030\341>\256\366k\261\037s\315\022C/\242\222Q\251\250\250\264\256%\032\255d\232%\030\254\244u\t\010\250\344r\2254h(\341\340\224jjJ\030J\030\274\241!\317f\363z\367P\324\213\305X\254\231\031\322\315\366\341\177 ?\251\002\341\375x>>\236\313\345\335\334x55\244\020 \206\376P\377\235\177n~s\377\315\372\250\223\020\265[|\003\373|/\211'\343\305x1$\"\000\000F\014\251_E?:\3733\330\207\355\374>;(b\231\320z\223\270<\300\276\216\006\204/,\004\007\374\224\333\341\373-\366\301\221E\353\255\231x\350WwEEr\203\276l\026r\310*\t0\315\004kA\351jr\215\013\014\306E\303\262\027\025\000V\201E\027\316 \263\013G\204\005\177\202\300\313\004\203\326o\te\220\211\030l\300\305\325p\021\266_[sQ\271\215\330t\3145\340rH\271=;OS\223\3158\304\003Ni\331@\005\005?\027f\210A<\205\013^|\010\3723%\253o\207\354j\212\207t,\273\ra\215\377\250\324\262\253\242j\034BC\003\001  \000\004\323P\02044\227\n\006s\321L\331\003$\006M\215\205\212Er\2004\022E#\031\250\001(\010\013\220\"F\001\021\030\220\002\020\333\000_VP\253\211\235/\032\223\254\233\341[\343\264#\246W\312\221\026\2652\334-\252\373\245\235Qz\315\215!\274B\303\031\271@\324\372\331\306\221\226\316\005\t\210\347\322\375\341\372%\225\206\032\374\325\303H\364h\303\223EY\223\\M\243\027\244UY\226\036\272\343\332\315\303\021\264Z{=\305\206Hn\371*G{U\260\030\006`\231\305\031\354LP^\361\032~\273'\007\256\365\212\370\021\037|\222\3609\221b\257\303\331\347\261\245W\272\360~9\204\360\337\372]\3709+\224\010md\201\206Q\337\204\313\304C\t\205$\307\330X\350L\246\002\223\211Lf\220N\273S\031h\213\341/\327\367\177\332\376\352b\005\370\233\271\306\272\234d\010T\217\350\304\214oe\226\277>\253\001\336""\214\2233\213\027\212\343\240\355\234\225\365'~\244\235\261U\373\354L\271$8\333\264A\375\013Q\272o~.\024z\250\210\303w\305\345A\322\350\207\242\310\274\013\333,\240\206Tv$]\336\002b\260\025\250\213\274\341\002m\223ez\005\261\247\302[&\005Z:\241\265P5\025u\312VbBE\020\312t\276\016\034\345\227KLD\221\262\0271\032x:\360l\3752\316\312!e\252\353\332\177\245<\315$e\355\247\256\217M\241\326Eu\232\241)\016\210\307\370N\026PT\237B\264\032\264\323\365d&\363hX<\272b\343\276\216\267\241\361\243\321\3235\322\355\367+y\216\023ov-\214\023\347}\033{\360\000.vG/\2411\241\252\370\217\322\324@\306\312\007\277Y\234\371#\200/\220\222\205\001\013^\206o\230\013\3426c7\312\322\247;q\356\262\344\242\357\020\245p\177h\031!\202\335\204m\r\246\205\332+\026\267~s\2452\334\325\255\204\355\363\0343\321\021\r\224\004\272\253b\303\355\025\231\260\336av\357\255\204\215&\254\034\265*\357d5a\312\236\324\275\004\334ir\002Q\260\022\204\220+\247\335+\303\262\211H\262jq\2160\235\021N\224?7\265\261\245\272uCw\372\036\351\030\335<\003\3707\303\360\0103\365\344\356~\327\007\261\366\373{N\035\2049\213\036\013\014\335\200A\334\\\025>\271\024`\177\367,)\310\223\020\r\341B\361\023%\363\037\345\256\340\020\020sF\000y\303\027\253\257\177\237@>3\353&\335\251\rA\335X\203\032'4&\221\361\031[\320\023\356\330R\245\364\342wa\344+\307c?4\002\304\305+\266,+\034A\223c\323\035@\327C\005\201|zY\227P \347g,\020\035\353\017fs\335\243k\000\003\217\304J&\355\037\237\377\262H\225s\360\232\231\235IWR\203\010:L|\005\217\303\220\254\226\274l)\270}\373\234\324\272\267\305b\232\316_\322z\352kl&\035\2760\217\363\354\246L\343\275{R\216\362\177\326e5\225\233r\312\007(\246\331\32762\025j\343\324h\211\202\256\356,\314\266\036\273\177nh\005[*\024k\301/\253Z@\007&\257kA\036\305\235\201\023\014\263j\201\r\315\352L\305\321N*L\202\004p\343\376\330 \014\320\n\200V\301\024s\264ocx\223\301\017S\205\013'\201\370\352\030\366f\232s\377D\360\004,\\\017\"L-\025 ^\333c\332\242\375\207 \363!\003\266\266x^\021`%;[de\202?\226^\013\236\362t\335dq\201Uk\207U""\331\376gN\"\3479\263\003d\224\265\242j\034B\355\263N0\001\262\200\240\2011\273\242\0032\037k.l\\\332\337\316]y\341\313y\212\317\006\027w}peaU\265\001\371=<\372\350L\233B\311\331\251\361\212\370|\237\241\305&\373\234\365)u\334\346\217\236\274\221\356p\260\3660_\213\356\362 sM\377lp&\273\253?$\330d\240\240\232\0027\307\220\260&y9\371\337\264x\242C\271\227\206\206\262\325\214\300\024\242G\232\207\216\004R\310~\251p\353\241\313\271\3231\231\330\002g\341\345\032\377\211\314\263Fq\t\013\305w\350Q\317\203\026\212\335=!$,\364\366\350i\237\240\301}\301\251\262\323\316\261Z|\213\027\247\t9)\326\345H\246\372\220\035\220\354&^\0043\331\310\250\006V\333\000\267\235F\227\227\270\035\371\2768\343r\313o\0023d)\346TH\022,\231\305v\030\264\365r\017\3502\246\316\304\rhs\337\200\177[\"\272}T\266\237\0357\224\n\277\301M\302[\316\243y\213N\347\366\355\tZ\241p5\017\236\276\"\230\247\020`\252\035\231\213\320\002\321\340\243\211\270\360,:b\010v\r*L\003\003\024\204\251x\271\221\2537\030\254,\320<\277\020D\037\005o\221c\365\312B\272\307\243H\321\231EjP\223\220\026\370\320E\027\211\022\336\023\"\311B\322\204\014hS\217R\322\031\255j\302\340X\325\335\255vj\3059\374E\377!XX\324\320\332\374Z\034\377`-\016E,\323\210q]\204\345\210\313\355\315D\324\226\341\002\234\3039\270\205_\233\016\223\032,\264W\260Q+\022\346\240iiP\345\300Ye\334e\307\324B'z\210\364\223\210\255P\212In\027\016t\203\252\217zs\026N;F\212\233\025\203#:_\003\305\236\333E\203\274DG\247!\031\270\310\374}\203.\353\314_\244[\243\361\273\316\020Z\225W\221\201\377%\0212\245f\tE\345\253lS\253t\216\305\365\\p\016\312\303}\333\343\220\005\243Z\243H\305\021\243\240\202z\034\314\3302\242\272\325\030\200\343j\213\366'N9\211\326h\247\351p\3404Y\337l\353]\344B\004\232\226\006\241\222\332\2714&\026\206\254\314\246\362\023\331\317\375:\306\366C\344gK\017P(X\256\304\2173hH\216\256\300A\357\017\307\225\321wX\315\210\372\005\304\007d\034\022r\2005\306c\234?\025\200\311\336\263f\3753\374\025\367\222\236\273T\347\242\210\360\001\231\371I\353\331R\305c""\214\263\tI\275\240\030\262\"\254Y#\016\300\305S\256u\303D\264`DAY9\316\310\365\344\326\036\215A\202\036\244\302\035\010#\266vb\300\370\014\234\2215!%Tm\253\023\204\227\200E\373\314\365\257\223h\373c\263\320\0142X|\266\0163\000K\rF\260\026\207\"V/\271c7\026}\272\361q5V\3564n\316\310\244}@\217\265\\'\372y\245\332\220l\200\352l\007c\004M\266\005\2462*{Mq`\245\316MX@4\314I\222e\331\205\210\222\021o*\364I|\352\002\037O\330wQ\206\221O\350\346/m\211\326\314\302\267\004\205\307\307\004Rw\363\\\177\226\036\013x|\036\245\373\025d\263\365&E\367hq\310\362\"\236*\276+>\270\330R\261\306\027\000\002j6\017\016\036\r0\260\246Pn\332U\212\034\225\023EK\275\016\270\206+Nu\236/\353x\333Nv-'F\001\007\265\356\035dK\255:^\321\311\202\005\214\007\2445\235\202\t\323=\201\211\0055\352\345\321:q\266`c\216\267'\315\306\372(X\035\357\212S\354\334L\247\270\241\236\243\251\336\303\316;<~\241\004\3336\177\214\321\270Cx\014K\237\317\243\236\322\376\263\342\364a\233\000\026\376IAg\302N\276A<\010\322\243)\270e\252\361\"\2560l}h\177y\226\035N\200\366\372\2637D\262,Rix\004[\247\205\315\213\027\t\010\341\032\260r\315\371\223)\032Vi]B\252\255f\264i\273\204X\242\251X\365T\366\337C\245\354\301$\316^\327\251\003\263[\251\215\301\321\3201\\PW*\004d\361P\024q\360\354i\204$;\314\270o\245\363I/5,\273Kr}\322VY\223N{\255\356w\233\345Sd\003\037Na\212-\232\303VVGh\022\233E\240/\334{\013\337\240\207\004\303\017\253[\203T,4\036\263\330\213\270!\007=7\201\204\330\306\025r\305\347\2030\014L\032\253g\324J\037Hz\334\020'\003\221\235\333\361\273*l\330\302\310\037\207\330|\213\364\210\272\010~\"\304\303\000|\016\250.\375\242i\356\000\014\244\002q\315\314~\377\250\264%\315\003&\314\003\216\216-\264\345\223y/\265\026\307ph\027\274TI>\215h\207\311\235\022\243F\255~\316yY\254\002\251\247X\023_\206\313.ra\311\354\3543\277s}\337\022 \3074ns\347\277P\322a\274\341[\231\370\014\300C\327\327\314#a\260]\354`_o\000\222o1\364\214\301[\025\260\233^_\202~\373\312\205\322\203\333\256\357m\006~MG\363\205O\030\3259\220\222\331\206\252\026c""\371I\003\226\326#0\344\276\003?\365\231\017\240\0258\304b\021\323i\336\035\262[\210\254\325-\373\274xq\363\271{Q'\305\177\037\204-\2278{\000\031v\354\356Bh$\0053\023m\310\216Xg8\0360\200w\270\271\373\333|\273-\321\022\227(\017\267\347T{y3\350\002\335\311\215O\227\275\226\232m\353\302\344\313.\022\315\333\016d8-(;U\345\373\\\276\214\354\272\276BT\346\r\374\341\211\327o?a\307\206\206\214\356\\s\347N\255N\310\301\026\271%\021\251/\250i\273\205\214\232\0239`5\032cr\251S\226|\364\367\344\262\243\265c~\232H6\017\271\005\300!\207(\034\254\373\257Bl/e\221\250\262\230\327\211\356\\\323\237.\351D\262|\301\327q\213\223'\3203\311\244\231m\031\000\317\350Z\350n\324D\347fj\032\200v\013\262w\021U\025\315\260q/\356\373}\272\340\340\264\311#\266UG\214\3479\376#\231\342\265)\234\242\0104\003\263D\330\355[\362z\216[\275V=w\022\247\216\247\353Z\341\310(\276\001\234\262\270\030\301A\021\353\031w\327d}-\322\237\001\335,\345\013\311X\252\3049CY\345UR\252g]\250'g\214C/\2329\241;\311AW\352\214\262?\251\271\2016O\305Z\320o\361\354\202\225_P\352\341~\253d-t3\203>\321\335\027\224\177\206\316W'T\210\024Ls\2066\261\r\036[u\007r\372\352\256\261JzR\007,^\304\230\251e\250\301\022\313q\324k\3667N\222\320e\215O\305\205\270\256\rK\017\201\205q\266\0179\324\032Pt\245eM\324?$9dU\006\364,K\345cS\t4\0069\363\335\341vwd6y\272p\330G\372\022\236F\023\300\"\255\347\022\025\033\211c$ft\351\357\r\204\342\022\333\323\005\372Ly\210\306\363\353phk\021*\336\242I0\276\362\371\254\027\245\343\230\306\343\371\007\025\345\375\023\232\327\275\270\366\207]zI\231\021\261\334\tXNf\302\037\005\246\264\301A!c\005\210\027\203L\010\302\361$m\321\252\031\334\005\367N\0210\275\\8\242\277\374UiW\010d\345t\266\300\027\001\312R\"\353\004\330\301'k\355k<tC\215\341\233\314\263\310y\367\3218\036\353\"\215\213\027\367\212\212\371de\206\010k\377\\|\177\352\233\363\246\330_\244\227-P\276$/dR\324\\[EbpZM\0166\016\344y\342`\225L\316j\214\304\202a`\265\363\307r5\026\254\206\3340\022>\355\253\034\312\022/!\230\371\315\257\356Qx\001\334\220 ""\260S\364k\226\272 z.}h\2125@\202\301\225\231\212 \371G\324\351\376c\326#\344\240\325\357\010\202\n\345pXG!V\301\260;\354\334R\177\006QE\201\274V\023a\036g\311\243D\231p/\354\350\366\325\n\367\267\236\241\277\353$\347:\207\357AkRR\315n\262\005HT\247\025\206\310Q\201\256K\314Ex\t\2275\014)@\245\266uO\312\025N\351B(|\302H\001\356\206z\023\215\254{\013\261R\304\231\214\214\036\014F\006\037q\260\351\177\310\323\234ZUd\221a\352x\240?z\336\316+D|\311Fz\306E\346\375h\347gr\333\204tI\311\007\214\3510\020\017K\273?\355\347!Y\362\334\213&\274\202\302\321\007\235\023\227:\363i0\035\r\004\313\372\365\230M\304%\362>3'\000\020\030B\312\306\362\225\034\363\204p\364\350\327I\340\361^+\223\034\r\027\004]]\031\204\274\332\330a\263e\326{\323'=\263\220\263\323\205I\3037\001]\035\014\315\2307\352+\014\254\332c?\240\272\007\313\337{8\237\320\036\021\364E\302\334\2728\306\021@\334\2114\230\355\256\244kU\331\277\t\240)\375\340\0271\317K\363\270\331\304\021\260\242\217\357b)7\342\277P\te-\332\316\320\273\351\215\013\371\021\213\214B\314\206\221\351\000i\247\367\r\2737C1y\253\306g\3359<\260B\274\377^\362}\263\321\273\204G\261\300t^\275k\275\232\274S\271\"\236\321OJC\234\026\312\256\3608\222\225\223\275\031.X\3033\364\232%\263L\302\026X\303\347\273\257\274-4c\313Q~G\226\215B\201\202?\310n\311\300\330ML\021\024;\352\373\261\264\340\361\266\310\003\353\371\271>\033\361\032)\\b\203K\373\305\313\\\346Tq\206\205\361\357\006V!^$X\215\021:\244\031\307:p\360\262\272(\215\274\372\334*<\210b\337\203\0167\335C,\266\255K\224r\255\"\032]\275\304\353\372\0379`{5\237\006=\205\252jZ\177\210#\273L\032\026k\357\207S\327\004\203-\251\340\t<\212\031\303UW\333\264`(\251\253_\335\020\322\207\032\265\253\255\321UU{\014\251\007Z\346\241kx\031=\267AOP\336\221\332.@\271{aM\276\331\2113\222\240\351\200\320\025\314Pt\260Z\227.^\301\ti\300\330\001\266\232L\263\"[^U\030\250\236\217\273c\324P\315\322\272\311H&\243jd\212\254\265\264\340K\316\021(e\306\376\342\365F\001\250\206\235\212*\334pY\337o\340\323\013.^\r\025\224\262""\255=<\363\010\225JX%\2771\271\247\014\210|V\017\246\216I\003$\263\322-\321\277\272UD\200\220\371\262Y\024\304\226i\365\272\375\204\2776\220\331%\351K\371\340\231D\301O\342\004\224T\017\021\372q\024.\201\255\030\300\252(\026\205\377\216k\364\342\200\307\223T\366r\020zV\257\307\324s\331\226v\005\373\2571\366<t\247\365\220~@g\254\351\0355\255/c'[\030o\236\352\270\370\311\352\360\275\035\230\254\323\020o\2363\256dp\205{\216\341\372\335\277\022\036\372\010dx_\336\2061\261Z\274s8\242\017\323\270\340\026\211c<(\321\350#\225=\214\366\245\206\266\205\240\021\304\264\001\275\217-\272\207@]\244IX3\221\027\215\255\311\373\"\270\310E\351\331\361\000&\214\033#Z\347\214\261\"\260\020\370\211e~Q\033m\356X\236GA\237\346ihe\016\225z\266e\201\340\204\236\364\361\305q\330\357\225<*X\252\301\351p\022\203\032&\002p+8Z\3669\274\322\215\330\241%\023\302\377o\333d\031\314\222I\375\006\260\257\030\023\306vhcP\347Q\250\204,\265\331\275/\274sDW\363L\324a\236E\t\010_\216\017\\\227\200D\362\365\243\236\022\214\335(\331\362\n\377k\351s(\024;\211\366\"a\201!R\t)\262L\310A7\035\372\363\272\225\226w\241\355\200\007\010\303\302\225\340\022\274\236\035K\223aV\035\325\250\n\361\245b\317\217\013\352a\226\232\033\236\025\302\340Q<|\275\027h\313\254e\003W\020@\020dR\006\211\330 %s\020\211\036\344V \344\017\021r<B\266\222%d\352\\y\300\337H\344\077\077`\220\310\243\264\"\264SD~o\265\210\326\330X\341\006\374K\001\2502\213\177Nc\372Hw\371 \254\030\213x\005\013\305\305/$d\033\"F[\336}\315\0050\006\322\236\036\223\354\021\n\353\204jL(\2425\004Y\271\362\004n\334K*\357\354\302Q\031\314\330|\200]({\302\365_\277$\244 \316E\320\342\022\340q\026\204 H(lM1X\010\211u\275\025Z(\363pY0(\021\030\211|\010\340\212\352\225V\244-pz\002\323\365f\020\276kC\243\377j\343\027\025@\216uw\364FD7\330\230\310\350%\216\215_\325\1777C9MM\306+\323\203\302Y\307\326\257\373\275\326\027o\003I\270\317\352%\326\2059Q\314\304\327\031l\363\271H'X\212\0247\024\354X\261\244\264\037.\002!_1y\371@\031\236\307\256C\360\033\331a@8\242\014\231/\273""\362\021N_\n\321\346Z\334\013\225<\001\006\371\035\351\325\322\353\037\332\210{\367xz\303\303 \032l\256\207\202\334uJ_\n&\362#X\026\321\025\177\000#w\364\236\017co \320:A~\364\305U\324=\355\013\272\366\202%\240&\006\265\221\357f\350\233\370\263, \205\335\256\307\265\327\242\030\376a\224\314K\367\251\361-\316j\312\255%\271&i'\364a\256 \332\300\342\2233\273=\273\271/G\274\t\216\305d\215.\rR\340\350\271Z\351\315A9VDD\023\345n\000\"!\217\263\n\035\360\221\253\215*\343\347\034\377\021z\347\342\022z\340\342\210}\212=\331\364\024\242\206s\244\257\203ZI{p\035\023\265PkN\240\311\013\247\235\204\207>*\201O\231\325\213N\021]L]\031\262\221\205/\263\006\231Q\205\230\336\240'\211\036p\nt&\317\345\266\346\354>\364\2341\032ht\346M/\302\3076\326\237\212\353\2007\210I\300\2561\002\"mCH\376\222\324\374'z$\353CF\345S\261\202=*'j\263\025\326S\276KG\237\201\203\350\357\304\006\220&\234\351\332\346\024\360\244Dk\307;\217\220\\u\337\333\207\010kn\234\242eY\341s3jY\307\273\257s;\326i\356Ws\300P\301\232X\251\374i\037\005Opt\265Q\354\352\241\375rAp\317i9\267\343\264\225\243\377\331\024\255\301\310k\020)&\200\340\360\310S\031P\206\315 \273\231)s2\366\303f\275\327\263\310\231\"\003\314\006\231l`\320<\377\364Y\240\013\264(\001Y\346\200\005\036\231o\026\340F\016:\313\210R\360\275#\025\3579[\357\032\247\274\370~\340\2227\014\025m\020\233\031Z\376\374\013\352\345~\302\326\274\032#\361U\364\270\307\210\177.0\204_\021\361o`\320\225\252:\"l>\r&\350ze\207\304p&r\r\310b{\305\273&\007P\230\244!o\255.\373\204\302\267\020\245\\9`\rAQ\200A\021\231\3318Ng\204\322\006\036\233\025\261\2431\000\024\204=\255d\026\341\0235\275\277\tR\203\017I\276l\323\306\224\003\252\024\303\315|\277\307\036\3101\274{c:\336j\306K\323\014\335!w\270\026r\376\330\315\025*\357 \317\307\267/\312\212\364\027\361\202\346c\036\326\013]\314\272\311{bn\266Om\363\036\20144\272\256\010\177\232\320\355[T)\342A\333[,\3545\235\024\372\336j\027\026\261\264\300\213D*[\n1|,\353\2640\324M\027\005s\275\370\275\226y\335=,\000\264\032v^q\266\250\202H""\271\333\252W\233@\325p\020\nv\363\374?\235{\367\207J%<\005\037\365\322E\250\215R+\337\222\256\2243O\265\230\332\3672\310Fop\326o3\025\345~E9E#\314\365:@\024\002\241\315\245i\231n\362*\322\326\276Y\245\".\351>j \351\332+\026\264\345\361\0323\324x\032Ml\335\211R\327g\361G\330;f\215Z\365\321+\227\265\264\377;\rW\321\217\204\357/\006\036\037\206\003\030\335<\274\026\314\331\000\255\010%\024bC\310\310\337\360l\004\306OC\000\322 \2527:1\006^\240bRl\227T\224+\355\334\345\217\020\211\312\260\253\346N\024\256\215\306C\230\222\007\255\016D\230u0s\351\371\002\373\270\320\346za\365\240\333\243\352L\336\340\317\005\345\346\234\335V\310\243\347\361\030\274G\354\201\375\213\252\212\245\241\235|\036\022I\007QI\301g@\243#T\266`\304 \023\300*n\276:6.\207S\261\365\232\220\202\252\213\331\213\213\367\215\n\206\3033\242\244&F\207O\324\214\370\032\226^\340^F\213i4\212\344\304\347\"\311\r\323\277\301`\2613\211]\202\025\361\342\325\262h\257\343\311<\366\327\254h|\255|\247\266Sz\356\215\243P/\202\254'\347\021\314>I\367\343\207I\347Q\334\323h\017\376\307p\023\2775\372\027\364{<\366V\323\230\253\020\253\316\002\251\004\177\204\314\250\366\037\217J\373\317\007r\240q\343\303\345\367E\332:\233\203MY\231\233\210.:S\314D\352Jka\365q\227\365\r2*\266A\262%n,2V\244\245\320\304\254\311\025\023\013\323\373l\302'\232l\210\270\342F\203l\306\200\300\357\301\363\213V\342\373\240\315s\r\265}\312\005|c\354\"\355\324\033\341\227'\036\327Q\276\364\306\346\324\221\370c\210\364\276\313\312\310D\306Cxj\037Wp\370g\217\317\335\320\272&k\032*,\033}W\234\360>\336\257\301\333\360QyA\033XvbP\221\302J8!\257\210\204\343\033\331\201wX\216T\225\3639\203\350\033<\300\341\357A\366\3450\352k\013_\004\233\214\305\365\317\310\323$\324\322\233#z\350g\\L\004\010\336\274\214\266\326\3736\032\222\020\215\277*\324\300qv\304B\265\2056\203\330\014\223=z\211j_\344\267\326\346\000\304\336\014\277\025RU\252\235\316J\301bl+>m\300s\306\257g~4\347\n\3748\205HO\177\231\236\000s\\\004:\242\253u\177\2044\262\203\375\311\000.\027\333\376\245v""\233O\372\036,^\223\022\274\257\003d\256+\007>aL\375\352Y8\257\354\016< \3519:\037\336\364\3474\277?\344\221KE=w\241\315\224GW\032\366{\313-\352\031TE\321\026`\337D\373\342\031\3419qb\260;\006\252\205\257R\211!\320\326\201\206\315\3028\303\314~\311\2247IRpC,\340\340\300\347\240\314\276\311Mc\032\233+\025x\267\236\300O\221\321\323\007\2702\273\377XU\017f\356\346\006\227\034\342\205\300\230\364\356I#,\2764`\023\341\025\252\340\303\351 \2025\333.\007h\264h\345\247=\247R*\261\rvD\265\2352\004\\\2432\344\347P\237\353\301qE\273\301\266\r\351\272Y\300\351\322z\206\223\253\257\267, \221hA4\214\010\320\206\030\203\311\003T$\252[Nt\200\211`\341'\201\375\375u\226OE1\234inyN\333\036\362k\003\0323 \206l\264\360e\326\014fU!NY\270t\201\214\300\241\357A\027\204\256C\313`\244\313H\035\013\216\\\017\333L\021\023\275\261\023\"=\254s(\206\027\323\315\327\202p9;\343\257\370D \032\275\272Z\014\236\336m\226H\330\252\342\247!u\205O\313\243<\373\003\301\251\207\r\362\340\364\260\273\t\332\362?\356&\316[\033xG;\r\374\315g\351\314\n\235\026\251\322Ov\350\251?-\354@'\207;\366i\016\367CG\320\277b\031%Q\374\233\341ik\356\361\377\013\211_\374<4,\226Z\007\333 =\255\232+\251\273ASR={\255\360\323\2467\253N\350\247n\016\304\370>Y\250A\007\312}\270\0237Skr\022\233\257L\204\353[\371n\265S\034K\323\221\345\364?S|4\372\001Ji\372H\010)\343f.\267\003\304\257\231\r2\361P \360\274y\315\331\355^cVpb]\270\223\317\346\273\237\367RR`#Y\327\004q\317\024\214\363\253\205\345\220P\2623\221\211Mu\212U\360p\000G\231Y\257\227b\370\021\366\037\027\226eF\\\232\321%<\271\\\237\3018YYMD\027E\315\343\332\026l&\363\034\313\312\332\234\346\272\246n\326\260vK\374\2244a\356\025\226\245\216.\326\r\017\r?)\356\212e\301T\276L\311\271\351Jnhj\0036#\034\255guw\363\3039\335:b\3657\233\017\257R\252C\020R\362\\\276!\240\223r\370\264\350A\371\314Zs2h\377X|m\267P\363\327\260\330\202\032:\372\"-\032\376{\265\203b>\235,z\212]\211\273\220\320\200@\344_%\017\260\nDF\330+t\3048V\252]N\356EdG\226\347\305\021+\341}L^\252|#\313\214\364\260\375""\"\264@+\001d[R5\326\r,\214\200s\007\260b\020\210.\224yBT\026\345Pdi\036\312D\306\200\262Us\225[\000wp\236\306\014k\256\362\"QMa\323\032\272<\\\213\201\t\210[\320\332\331\035\227\230\276,\211ls\273\374\352@@\010\030k\214*\330'\002\200\243\273\014\337\320\327\324\2107\031\236P\244\203&6p\036\\\306\000}\027\230\036\001w\200\004|K\023\0004\002\373$\206\026\t5\304\210Z`\376\244\317\230\r\300\337n\211\336\326\206^\242\360\2062\033\036\244H&\256R\200\021|Z\334<+\2059P)w\306\357\300\256\nf\241:9\303\252\310\tD\016c8\020\005\255L+\276\363Rf\337x\364Jn\246r\366\323\254\016\252\213\336XG\020\253\343\311J\302\321\357\345mz\250\022\334bo)3\373\334n\250\227\020\372\266OX\307\024F.I\315\025\317\023\032T\253\310O\244\021\023\234\324\356\234\tA?\233s^\340\343\267|\205Z2\341\365\242\372\014\n'\362\346Ukf\014G\260\203\0239CG!\263W\007\220ye\303a\021\301\267K\2331\365\332\002\213&\302\346\263\227\3123;\035\217m\016\021\002\236e|\355\206]\3218p7y\025\274\340\236BB\262(0\337\3376f\375\235\207\271\303\236su\037j:f(\241M\257B\304\340b\235Q4\n\177Q\016\216\327SjH\271\274S\nEq\270\001\t\241KD\265\330\004\032\246/F\274RF\202\006\177K\036*^D\344\202C0\000\016\014u\272\221F\351\010L2\022\241\027@\221\314\346\231Ec\302\033\000{\315\205+\225\307\317\224\346\310\361N\234\226)\227\323~%I\3773\362z\264]\243t\302\217\304\246\222\311\033MY\370\365\203\312jQ(\311s\030\263\364\004<\361\351\364\342\350\t\232\202\006h\341\000I\276p\265\030\003\211{\231\336\271\tO\004\357n\300ky+\307\216\243\013\\\217\014\027\016\205pO\310!\274\036[q\023v0\310\271\355\rK\303nT\307\022]c\344V\215?\302\315C<\223h\2120\324\007\336\307\005Ls\354\014\360\311\311\205\267\207y?t\275\004\206\\LDRQ\347G3\256\210-H\034\277$>\252\302&\353\004\251\2268\237\370\203\"\262\315\201\354;\260h\361jM~\241*\306\2241El\014GHax\341\252\314\000\005z\312\303De\\=\200\004l\261\331\257Tm\277\215\341\324B\325M}\344=uD\\\241\260\307-T\324p\250\235\366du\205=d\231\202\270\360U\236`',\000\007\264\027\211k\323\211R\210\006\"\310\013E\371\231\2664\260""\200v3\020 '<\322\315\371\353\274\366\000\317\2411\307\253\273\220\250\240\275\235\276\270V\017\225\230\272\016*^U2\0172G\331\356\213\272Cx\241b\033\356>\345\344v\217#:F\2074\r` \355\226Z\367w5\344\307\347^\260\361\343;\204\222^\300E\312\351\330UQ.\200wsyl\036\0341O\"T\207\274\223\370l\321\341*6\310\345\021\361\303\272\006b{A\007p\006n\006\311\003uJ\037\212\362s\242nr|\326k\007\002\000\317\006=\020\260f\020\271*\232\2040\332\370a\265F\343\360\201\222\324J\331?\335$]\363\301?\211j\331\372U\3577\377gQm\r\r\347_TI?\213&kXJs\014\010&!\0024c,\331qm\253\024>l\221@\245\230\004\251Z\253\344$\334\335\323F\217\200\234FJ\344>\256\024@.a\210\333|\375\240\331\021\023r\265\023\366\254>\325\017\020;\307\342T=W\207\350\204\364\311\245\243\260\243,\327\272\234c\250!\261\350\36472\017\244\347V\362\206\"\306\3718(g\221\035f(\250tK\311z\014\310\025\372\030' m\030\020\252\233\320\340\202\266$\227\222m1_6\\\356\335`\025\267\301p\242\245\314\"\330\320\204\202\024^\021\256\354\177#\201EW\014\364\321\372\014\305'\302d}v\227\002\353cR\0245y\355\305\271!\341\312&\344f\255I\201?\310\t\300xK\336X_\301\226\033\214J\234?\024\376)\366l\2719D\355\3571G\354;\013g\207\321\\l \024$#2\030\200\347\213 Z\360\374\204\303<\262+\375cu*Q,\361\272\2375\376S~\255\354\277\017\244\317Z\002WiZ]@h\2419\004\007`\203\335sT<\372\305\254\245\373X\305@\314\211\212\313\254/\216\200\311\341\005\3200\232\225\317\320t\360\205W*\032\300\263\237'\255\305\334\177\256\340\346\340\214)\244#\034\357R\350\242\022\tz\r{\334\212\317\337N\343\201\367p\025\245\342 5\250\037";
    PyObject *data = __Pyx_DecompressString(cstring, 11687, 3);
    if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
    const char* const bytes = __Pyx_PyBytes_AsString(data);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
    #endif
    #elif (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (11334 bytes) */
const char* const cstring = "BZh91AY&SY\314\232\324o\000\013\032\177\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`3\327={\335\001\3260\373\354\353\271J=>\273`\357\275\300\353\357\224\255\327C\327}\317<\373\332\357\271\365\360\366\350\272\267=\367\327\336\363\357A\300\274\371\213\337[\255\267N\267k\306\373\351\236\357\276>P}|\301\310\357ao\223\345\227\267pv\253wwu\272\3076\007F\365\356\331{\234\355\323\3375u\345\216\313\273\262\256\237(\017\275\303\276>\033\236\306\257\273\327\271\241\311\202\255\203=\000\000\017/>\201\327\203\t$\020\2124\231G\264fOT\332F\032\2156\246\246i3\014\251\2326\203LLSL\247\225=M\036'\246\246)\346\242z\232F\214i\352d\3656\246A$D\006\2010 \204\320\231\250h\302h4\324\332S\304\324yM<S\364\240\364\2324i\243'\2504\321\240mF&\236P\320\314\240\323\020\210BM\024l\206$\365=C\323Pi\351=C\324\r\014F\324\321\3526\2234e<M@\032\032\000\000\000\000\004\232I\010\201\rI\340\322j\033T\303&\247\344\230\246L\232hh\000\0314\000h\000\000\320\000\031\000\006\202)\004M\020#\030PzmD\236\236\247\244\021\264\312\206hM\031\246\223\3214\000\031\000h\r24\3654d\365\030\t\247\242\004\210\204\002\023MCR\236\314\230M&4S\020i=1O\024\361!\230\301\244\325=@\006\232yOSC\020\320\320\001\372\240\037P\220$T\201*C\203\275\214\314\034\257q\232\006N\272\335\310g\025F\316\254@z\004\202 I\026\n\000\244\204Y?V\320\n\204\210\201Y+\021\213Y$\237X\377\017\361\237[\353\335O\256\231\257\362h\177\337\376B\370O\017\313\022\224\277\351Y\213!|+Ej\264\262u\254\276Z[8f\001\341\306q\267\024\343\212f+\2411\334\340\003&\341\313\000\223\275\364\316\365?*1\332\341\311\344Wh h7\006\303\036\247m\366\373\214E\305L\307v\232\035\370\357\372\302\303\004\037E\361_\271y\337\346\363\036c\211\276\247\222\313\305+}q|\t\275C\227\244\2437\246\204\236\257d\274\243\332\357`\245e\202\352{\r\245}\227\332<c\372{O~[Q\355\265\305\375\260\037\334\270\273\334g\356\236\357\203\336\202o\367\367\377\210\275\347\341\017\177\300\374\007\272BN\367\302o\311\035\337\007\345\363\207\203\277\336<\032\271\235L\315""\013\035\r>\261\326\206L\207\373\353\277\277\025a\004\202\240WV\000\260+\001\\+\240\260\264B\270h\245]X\256\226 X)\225\303Qb\026\0262\260\032a\322U\026\242\260\265\021\\:u\313\n\272\257aWF\245\205\246\025\325\203\260W\r3R\302\261\247a\026\003\277\253\252.\376\223&4\227wU\217\203h\243\270h\351\r\245\2420\304;\232T;zGkE\3770\363\267\3314;'g\345Y\346z\317Y\375\214\374\361\263\373\031\325\326vw^\256j\315u\220\360\331Z\306\260\203\300\2623\332\256>Q\235YV\014\342\262+\031\245\005\234\250V\016YZ\265b\261Ys\263\253\025\212\325\225b\262\254\253u\312\325\212\325\253VU\253V\254\275^\243\344\317\222}\217\261$\"\300\200\244\204>\305\000\260\250(\252\032\035uf\316r\316\352\325Vr\365\265\225_\n\253UU\325YU2W\316\277<z\365\302\272+\241\025\322\017@}\001<\260*?W\253\335\213\333\357\275\276\373\333\364ho\276\366\373\333\357o\320\337{}\373\375\345G\037o\242\357\211\276\267\227\2059\336\246\014\037\204S\207\204\2651&%\3415\265\2541*\255\245\240Z\215\255\240\332\227\010\2755:\221\0041\004D`\250\253\024\004QI\024Q\001c \252\242#\005\025\030\221UDF\"\002\3061\214A\006FD\004\004\020`\203\030\221\"\010 \202\252\252\221`H\221\002FH\002\2121Zm\260b1\301`\214\014\003\003\315\260Iw[\203\316\006\265\201\205\367\324\301\205h~L\317\310\0373\026.\357\006\361\3777\330[\3614\307\022y\220\030\002\t\320n\000\330\235\247i\343\017\034\"$UY\000c\001b \261H\"\242\213\342)oA9\310tI\010\310t\235\035\023\016\003\306?\234\300P}]\214\330J\32165\347\201\021\300\256\266\260\354\317]\265AmI\2209\200\243 \301\005PY\026\023\252r\345\200\022t\034\241\255\241&\306\320\331\2045\202*\214\0016\020\327\340Z\356\266:\365\352\007\272<\236JX%\004,*IQH\204\356\222 \"\232fy\236\252Y\343J\246wN\024\304\030\373c<\373\254X$\205\367\356@Z\254*\013H\227\252P\364\260\027\246\031\265\271\203\030\333!\243\024\215fB\3205\245\236\264l\275\027\031\027\202\276\344\314\225\314+\200\271 \013\256\001\\\001\200\213\325\365\"\272\323\237*\313\020\211\020\262\313,\224\217\226\365\225A]\330\n\311\004\260,\260\252\237\252D\022\233\020\322B\372 ""\201!ff\263\r`h\013@4F\210-F\272h\014\245)I\022R*\2403\335\206\033\231\306\222*Ua\201,\n\321\236u\225\211a\202\25751\213\037ymJ\013\305@\225\353=\030a\212\330L\301}f\262\272\270\024!Z\254W\033\242\24312(\273Lg\337\210\003\377i\t\234\250\251\037J\000\250\221\221\344\311\326\352\037\017\321e\331v\303\274\222\020\225\232i\277\254\244en\257\334\363\013\225\333t\220\251\371\010;\037\357dQ\345\261\325XX\365\317\373\217\211\030\303\325\241\306W\314\320Z\277\352\321\274\2648HSP\275)N\240xft\276\313\254?NWm\214\370\213t)\267\330w \200\207\260r+\261\206U\250L)\376\312\243\216\310\007\2225\220 i\330\342g\200\2552\026\210=%Y\027\244\315\347x\322\3100\302\004\"O\006'+\263\363\301*8\353g\360D\244\272\376Q\205Oe\215\225\331~\311\310X8\245\r\333\327\331,\256\013\361\241\026#\307$:C\322-\225DP/^h\233\013\216`W\036\354,\257\343r\215\213;\032\214\r\364s\003e\034.\327T\204\305>\347\017\267DT\247uc\303N\025\375\235\245\203\027I$0\314\3142\275\225\0222z\022a\210\263\230@\202\010Mo\035?\017\357]]\332_P\374X\262/\2444\025\357_\336#Q\207(\341Uj\273\213\216|:x\317D\301\263\333t\327\274lhc\2144\252\r\362\177'\277\302\336\034\rB?$\325\353i~44\306/\224\003\355G\370\353\240j\310\324\250\217(M_\232\315K\215\324j\252\271)>\366\202\241\335\361x\026\307\242\024\357{\336h)\330&\341\036\355T\326\001I0\324_\313\232$\264f\346\034\311\n\217\372\333\3449\237\237?\333\375\r\037\007w\023\364\360ml\006\322j\340\377\n\n\371\267\035\304\250\265\2525\267\005iI\026Ek\001F\2250*6\265!\025\033\202\002\254*\256(\\\250\023_s\324\335\366\275\310\207p\266|\017Y\250\311j\317P]\351\343\272\301Y\357\037\r\245\225\225\201\270U%P*\276\001R^\001P\005\350\013\302H\220\246\230\230\224\245\363~+X\336+\356\221!\026\253Q\336\372.W+\277\332\3515\251[\002\325j0\r\327\302\363\275\277\261y\177A}\256^\007\037/\014a9\212\275,P\030\243\02017\035\036\203\232\267y\214\314\314\371\257\314K'7\033\214\024?\025\335v\356\366\237\336\3633\314\353e\227\355t\351~`\r\222\311\007\036$N?\267\307\353\340\272\360\300\025\267T\367\001\314\327rS[ \362""\344\037\226\271\336\240+\353\307;3\025\240E}^\2377\273\321\263u\203\325\361\364\374$V\266\273\244\225c,D\tbsz\"\350\363\347\321\340\3715\340is:\267\033S7\231\362\363y\240\252\030\341\325\256\335\007z\027\375\217\024hS1\351\317\010\267\305\2723\354\322\366\003\263(\273\332Y\010\301\351hYgppSgC!\231o:f\270_`\265\251\274-\372\030vu\362\342\230\321\002\315\312a\266\021\264\213PI?\200\323D\3304Y&\315\026A8!\325\324\261\322P\315\203$\203\000`\341\351\226\304\342\360\341\332\002\335\365p\313\215w\265q\210\234\356\331]\304\331\305wK\265+\301uu,h\203\"\301\222A\0201\207\032\032\244\201\201\345\241\241\003\007\315\230\r\321 t\356^H\017m\23425AFx\320\342\002\036\300\352r`-i%t\013\305\230\367\257d[y\345}\234\233=GV\306\262@Q\350\333l\316\035\322\300E c\220h\226\260c\026\204\3602c7\2767\326\200\331\025\307\231\271\001\370\373|\313\323=.\326\202U\244\206A\347\312\260:\347{\253\347\353\364\234\326}q\262\223\347\366\260\336\0015N\235'OR\346\026/o\263\206\340\007\323c\026#\014\243;\310\316\242\314\314 \010\001\036 N$~}\275\003\234\364|%(D\225\266\203\270J62\266\031S\256\231\200\226;\2312#\232\302\356;\033\027\204\340\332a7\306\010F|\365\327S]u\264$\262\345\232\276\322\312\353\257RB$\257\337\251$d\247\372v\377?\321!%0)!\022F\361/g;KR\026K\205\350$w\364\264-\013U\242\013,:d\245\205i\273;\256\025\252\320-E\242\360\361\277\210de\206\031\006\353\213\200W\"\344+\222\353+\017\372\265\005\251Z\n\337\222A$\224\202Gf\245Pj\272\341+\213\264\016\261\2423\\]\356\307\034\276\361\336n[u\345\345\255b\237[\365=\375\246\321c\315\256\2741\364m\033-\376\265\226Y\300\346<\277Ix\027\200\257\274\373W#\262\177\363!\017w1\030_\r}/\003\014\030\275_\205\0324R\243\3772\361:\210\tV\001dP\240\216q)gV\036P>\036\3072l\317\205\223&\037\211\330\221\211\331;\357\264x\226t\373\247T\353\323\314\241Lr?\257\31714.\301L\230BM\266\330\2729\373~\240\3731\001=\307Z2\224\247\260q\035t\024v\025\350D\245w\372\325\"{\366\264\341\215\370\224\243$\307\014Q{\021-&\303\222\025$\316jn:\233\2104v\333\216Z\312jI\272N#\200\311&mw`\036X""\036\274\007\315\375R\366\370\274\017\335\241S\316\324\247\226\317\260\352\032\277\247\007\241\212\251|\001a\231\2704?Ho\375[Q\270]u\252a\237V\362}\325\327\365\300\313\023'\332\021wZ\267\345\020\355\322\320S\314\374'\362\303\224\356r\236Qf\246c\232\220e\037|\321h p\312\033\320lKA\265\222>sRB\024\026\031\310\215iQgM\20287\207{\200t&\203\265\253\304\016y\2379 \221\236=\345\352B\342\203,\316\0332!\003W\035\334px\277\006\202&_\321\266\251\007a%\260\262\002d\027 p\001S\030\033\256\343\004\020\360>\347_a\005\377\177z\212\007\250\321\333\342\361\203|X\031s\305\240\327\213P\323~\034\ny\256\370\235\333\252\252\024*\001HI,2\222\025!RT\264\351\212\235 )\343\260\311\234\214q\311\334\370\354i\263\301\215\264h@n\327nh\236g\307L\n\006\236\201RS\277zH[\367\357\r\347\255\377?O\0057\003Qm\301\201\316\006y\233\233\350e\236\257\333wZ KM4\000\300GQ#\260#\3367\010\335\264\332ok\343{8\366\356\253)Y{\366\265\252\313Ek\024'v!<b\304\371\006&+\034Q\211\201\200h\014\267\007`Ggn`\313M#\331rT\220%\247\312Q`\305R\355\231\036\332\261\341h\237.u\005,Nu0\t\305!\023*eG\367\350\021Y\245\214\\\204\355\r\304)AJ\263\250=\314\3338h\223\270\244B8\326\226\230\271\r\331\032\220\245\005*\316\240\353\225c\005\2225I7\215Z\322\335\t\323M&\210\321\005\2021\244\2551r\023\2645\"\352\227Ww\240z9o\217\031U\350m\343\216\357<<\307q\335'w\247\316\033\372\363\314\034\300\313\2317\372YgE\252\317j\305J\n\3205i\274\331s\177\022V\336]v\341/\301i\2735\2510\324\035\233\177\217\"\003\227\211\3627\372\0212K9\007\335\247%\251\315\210\tqX\327U\317\344\323 \314\030\314\031s,|G\203\237\331\355\243%\255\017\010>\354|\332~\016\366\207hY\231\342\031\203eY\352I\267\356H\206\013\026\356E\314a\010|3\013\224\321M\007y\337\345)jO3\037\253\275\333\305,\222n\214L-\\K\367B\020\177;\321I\234\312vv\232xG\264,C\227E\251=Z\216\267W\333\000\226\">l\326o[!\232\330C\231\217i N$\362eu\210\013\217\243r:\246\210\004\362\210\246\264\302\022N\340\243'l,\234\033WT\333:\212}\215\273\375}\250A\334\365[\341=\236e\026\217Z}2\266\342\265\367\331*\240\214\2003P ""1\n\000\261\210\027\214\013\3125T`\010\211\026\335\345\n\3102\214h\352r\231\247p\230))#H\360V%bM\333\303w\334\300A\r\003?\033\341\300}|\344\353\271\233\344\337\212\264D\333\272\236\346\367\035\2556\302\227)\3036\372\277\014\371=7\0232\343m\314\2708\337\253a\214X\n\277\023kRD\234F\016\217,\2323G\332t\200\350\230\204\364\212k\036T\202\230c!\214\243\266ty\317\247\273\224\244\021\215\0035%,\231\262\225\213\033\021\313\323\304Z\270H\326W.p\367\3202\030\032X\306\354\244\323\261Y\313\212\346\333d\3047%\375\335\336\264b\261\177\003\336\356\350\320\3504i[\323N\227~\341\332/!\322\356o&X\"6\371\2622\307:R\254J\022\346\026\024\241/\305\020\007\223\205\341\353\033\271\303@!\235N\244\236q;\367Ha\323\332\331V\335\255\232\314\307\331\2738\232\356\010N\343\273\272@\356\200wI\361\242\246KM\005<\276\244\357{'\256\201:c,n\227o\030L\311.\245<9\363\251@\345\250\277!\342\244\251\214\303\023\346;Vu<\3450 \273\270\210\315\244\020\026 R\014YRX\200\255X7cGm\006hL\030\243[\372\341\230\2633G_C\255G\214\341\267J>\374C+\225\206\3663m\241,y\010\334\227\\\340Tq\270\361\2165q\207I\014\203\266\233l\345\206\006i\263:\271\364A\263%\241\314\206\333ekG\3475\026\253SQx\016\233Q\240;58\254\223.Kr\002D\224\203\207\326VI\267\364d\356\320SX\255Cok\256\005\363\253m\334q\272\347'\250$\033\353@\335\216\007\316t\364\3610\020`t\253\315\251\334\373\0200\014\001\215\006Z,P\276k\352\254\201\236\304YB\225Xe\246\222D:\2344\342\261\341\301a\315\270\371\313\325\340\306\203i\373\267${F\334\221%\303\241\313;\336\200:g\\z\363\321\030\010\254QE\005\024\212\n\002\212E\024QA\020R)\024R)\024\212\n\262)\024\210\202\203\343\362`b\013\026\n(()\024\024QH\373vT\212\002!\353\372\250f\324*\002\221@PR(\016\370\276\324!\005\225%B\265\225\201\017\371\276\366\264{BJ\206\276U\000\320\204\017w_\276\341X\035\351\232J-3y})\273q\243\302FNI\372\254\273\361\317N\353\2401\\\320'\223\3748\2769\354\343\2255\310\333^\034:\317j8\001&\r\025\tr\030\326\270\345\325nl4`\307\313j\211\2241*\316\023\253\245\251V\242\361\216R\330\001\0029\227\203{\274\273""\000!c\211\010u\301\363\013Z\241\367\265\340\257fZ]\235 \210YV\n)\2222\204\201\013,\n+\223\3330\024&\025Qn\006i\372vel\215\230F\t\206L1\236_\036\373Bq\233\215tC\002\276\020(\214\320S\261)\264\204hj \031\316\370\265\317\214\212\0163\242\r\244]$\225)\342\343\335\024\204)\241l\316\321\234'\211\004$(6P(\252(4r\222\2110\327\247\236`k\344\304kj\254p\204\230\254fN\353\256\245\200J\360\265\364\211/\233\312\273G9\365\275o\007\030x\031\317\334>\240\355\272Xz\356\204q\226\\\366\031D\230\230X\226\244:\237\021\000\3165\374\030\325\007@\305\001\313\026\223\203A\234=\223\271\264\345\326\310\211V\210\3449@S\252\2269\301-\013\2617_\277\256\002X\207\307\263\020\003\000B\372\314bxSr\210\206\360\233m\342n\316\354\216\334\3754:\250\014\317\210\352\232\314\326\203\030\322\256\370\237\256\330\206\021\225b\311\306H~v\\\033pl\0137\306\010\247\364D\366\030C\0004\322lli\023\216\370\037\237\206\250\027~2\253m$| 87\033\367\355l\267\363\036xM\355\221\214sm\221\370\305!d\343T2]\265\260\335\002\005\251\265\350\252qc\2719\361\300\353I\t\013\013\324b\300h\204\314\333\347\000U\002\326\215\t\312\253\026\202}\210!\244\220\212\303\340~\276\324\034\262\315\261W\232\234I\214\200\005\317A\314]\365]\231j\353\353kw\035\030~\026d\t4\204<C\245B`\0140A\201\030\027S\337\366~\311l\326 %\2168\326\212\246\004\206M\345\001\020\257&\002\202\265\035(\300\255\231j\315m\035\001\366C\326I\006\316\267]r\365\375?\253\230\343\3005D\270\267\323\002\032D\034\266\005\260\026\001mc\274)\024\377(\332\201\203i\273\010:3\303\243\265\222\n\343M\237\351z\273\265g\367k`\257n7\266\2440\225\344\317@\r\3133gT\211\321P\307\371\366VV\2506%J\211\213\0076~\306m7\2403\003\305\316\236\006\334\217\007\335i\225'{\267\331\351\352\034\275\204!6{\222\036\320w=`\241l\352\221\333=|\327.\253\336:]\265r{\0003#Y}\367#\002\366\315\215\306\240I'\240\026(\267\313Z\233\215\356\376p\373L\354Q=^\373<\254\036\300\241\333N)\"t\3118+\304\351sg\316\245\202U\332\272\026\325\253\265t-\253Wj\350[VU\332r\246U\320\266\255]\253\241mZ\273WB\333w\006d]\240\222\t!4\246U""\320\267\316\334s\273\206\035\353\252\326\206\254+Wj\352Z\306\235\334\3625S\240\255\261\255\022\271\274.\025\255\236U\233u\233m\344\321>\233\337[\372\310\017\214\245\214\030ZU\004\370\020\352\221u\220\330\231M\267\376Y\341\014\3736\n\001\254 \217\213\304qvMG\035\236K\347\357h5\020\352u\315<\334\340\370\365\n`\213e\241A\255\211\006&$L\304\030e\026\301[ZUQ\210\317\217\314\226\236MHz\376<\361o\350\370\235=^\326\222\036\027\304\221\237S'),\200\205 sqw\2375*^\362Nw\215[\331R\301\233#\r\373\371\260\307rDx+\206v\317\272u\032[5x,Fv\254\345\316\260H\007\201\271\224\t\221S#\177\334\277\310\336\374\363\351]V\262\023\331\240\240\013\006L\3313\002C\\\021#1\344:Q\344\003\307@\324.\2459A\345+\325\003Wwt\216\263\023\231\313\346\251\224\303W}7\346\201\225d\2033A\247\231FI\230R\312\370\305\304\246K\221\n&\303\001\364\216\240s\363\257Vh\350$\r.\272\007Pb\031\300 \324-\361j\262\021'~\000a\333\231\222\031\013\010*\232\231!\220\251\200\202 \266\0142\001j\236\007\264\252\021W\207\010\316\026$\354\300\211\210\202\010\253\214\343Y\222pp\272\315\353Z\326\273J\253\213\226\332\266\335\214\264\272AH,`\204\304\352\241tZk.g`\252)\032H@x\230\030hH\260\320\204\333\000DhA\2544\203\340\346\211\350\345\313Zf[\267#:\331\317J\210\252**\214TUDUUUUEEUUTTTTTV\"\252\252\250\252\252\252\252\212\252\212\252\212\252\252\252\252\242\252*\252\252\252\"\"\250\250\212\212\275s\236\272\271Y\267>\216\245zw\337\021\333'\033W\"s?K\344I\336%%\342\312a\032|UD\230|`U\263&r\341\025\266\333m\253m\266\325\266\333m\274\357\037:\000\347>\350h\345\333\336EU\005\320J\2318W\333\236\014\355\004\330\275\265\003\342\364T\t\nS:C\345R\233\027\003p\314\2200\202r\201\345\010z\036\375 -\360R\331\302\201\320\006\312\357\2402e\325X\344\367\244\271\327-c\r\220\222\201$\\8\275\364\r\311\354\034\026\317\276u\\\337\254\336g\333\304\036\300XojB\364!\260Mz$\276\242\370D63\023!$C2\236i\354\334\326\221\272\310\026\362f8\233-B\301\212\250eb\005\r\006\256\304j{\335bR\215\210Qp\233\000M\200\003blB\033\035s\373\031\326\376\241Uk\204\217u\r/t\245}""\336\246\205\370r\204\204\035\200\327\214\276s\200\337V\002\342|e\362\216Ya\206GD\223\232\322\315\263\"\245\207\010\314\310D\231\220\274i\305H\345\300\201|gS\266\312\243\022\204\030\024yJ\307\\\360\031\246&!\266\361ciD24\317\177q4\316\352S\214\006\021*\2624\013D\215I\021um0\304!Z'\032j*Y\001f_\303\267e\022\351\004616\\jB\345\001\204\035~\003\261\214\014#\223P6\262\346\272r\014\201\332\225\214\324\262\037\361\333\031\031\003\303\025\207\241\240\273\032\032\002\355v\203\265\332\327V\262\027@\357\255T\313U5\332\211#_\034\003\245\324\307\307\006\375*\000.n\330(>\304\035\315\234\201\205\237\277\020{\217\0078\243\024\256\317*6\244E\221\031\370\331\2050\372\366E\325\346wcT\226\217c\306\266\214NE\306\034g\032\367\027 r.C\213\300{fk>%\306\237\036\320\r\257\342O\300\356\244 \023\002\366\037;\340\317\325\262;\364\273\201\250\321\327\264vE\177\030\256\251K\315\000]\033\275\353d\304\330v'\234\234\002tN\222\235\024C(\356a\316\304\343.\252\245K\025\223&\3502~f\007\230\350aY\361\253<\306P;\251\017l\023o\2047\3123p\340\351\333\215\214\364\205\222\n8m\234\341\262R\242\241 \314\231\234\306e\315\322n\332z.n\254\006G3\031\2716T\351\241\205\311\322\315\301\025\234\267rS}\000\236\025I\234\002\311\235\357~\010\246\366\267b@\r2\002\302N\251\016\274=\211\206\306\221\204\243\236\222rq\370\372\017\310 2(\221>(\036=|#\276*T\264{\023\371|/\031\347|+\211\355\367\365\323\301j\257\211\226\265\265\032\300\3624\360x\274\313\2527\2123\316\325\027\310[\332\352\237\301\215\003\000\036\363'\271\235z\340%q\004o\225{F\313\276\216l\200\301Q\026 \217e%\201\005\0060\337{>\215\322\355se\354\343=M\337,\0105\205\320\300\216;/\237ASN\340\2069\233\2471\336\346c\003\023\272\030v\376\232\324LdU(%\212\004\000\337p\246,7\214\337\220Ub\221\004Y\267\034\233\026\302\036p\343^\347\271\017T\365L\216\0356\007y\035\010gAD\222\240\362\334\013<\363\305v\201\353\014\263y\357r\201a\271\315\223\277\321\220\364\035\345l\223\315\273M\202\257g\010n\001\255C\224Vyn\345\017\254-\346\365\274\017X\003\302p]\272\327#\025\305r\\\341\273'f""\031\307v\312\027\034\313\225\257\274\353)\353|\274\306\002\032\013\276\006e#\205\250\031\354B\303G\233lv\326a\261,\314s\311\347\363\366\376\2019\303\351\250\",\025\026\023\267\234:{\335NO@{\367\r\365\254\030xSmK\n\221B,\025R\014\272\223& \310\026A\227\032\220\325\223\320\004\216\266\260\331\266I\350\247n\301\247\236\212\347x\357\341\271\256D\026\031\021[QH1\246\323\035oG\337\277\325\2459\250R\231 5\240}m\000@@\001n\274S\032\225`^\006\023a]g\305\031E\376!\023%<7\302\374v@3+mWj\212>w\276\352\366\274]\355\261\275\327Du\267\263\017J\361\035\346\270\256\200\3521,\320;\254\222 \200f\204\010K|\321`\231\211\236\000\370CT$Y\212\373\215\314J1\264\317\251\352\036\247l\304\330\271\203\230\037q\373Y\232\305\270m\275\252Q\26293\026\341;\263\330\363\227\303\341I\r\016\023\270s\226g\204\231\204\303\205\010&,\345E\n\330[EpN\266\2406\243\"\310\260\245ie)/R\033O\016~\213\353\020M\331\244\344 \200u\271\311\315\343G\235_\216XM\2732g^\376\340X\343\303\302tp\367\270\226\366\362\342\\9\013\216\273\344\360\222\230A\332\"\262(d\223g0\330\305F\025$P\005\222,\025W\031X\000D-!\001\032NJ\306\354\347\351U$\240[\315\237?<f\206\224\336\343\230\235\324u\013\335\2533\257a&\230\002\227\002\205r@\022[\005\"N\"JQ\334\364\036\035\237g.\325\334\226n\037g~\014\364\321\nBC\332\265\004D\206H/I\t\200/\206.g\020'\001\202\254\242;;\257\302\330\326\2024X\354\n\357F\023\256\266I\032\200`\014\246\316P\310\005>\027`\203:\3421P\212\253;\032\301\204\352\204(c\002\035\343Z4\244Df\354\254\210\003\"\014\001k* \354e\034\311$\360\353\004\325\215\327\303\372x\310\366\026\214\007r\021\303\270\311!\033Fn\325r\206\261*\215\345\341\345\027\366{<\033\033\257\007d:GH\207\244\360\256r\007\305H\224\027y\251>\035U\3132K\303=9\300\212a\252\207\0006\244\347\342F\231\206\202cHa\244\274\336(\246`\215l\373Zu\322K\275\356za\\D\310\376'P\"\204\026A,#\014!\363X\310Adc\002\014\204\335\321$\337\250\335\022mgg~A\224\311\362\240+%\302\200\243\335\340\260\314%\204\261\007\037\0053$\032\331\006V\310%JX\305\204\254\2022\013mY\001\2515\000\204""\267$\034d\201\230o$\210w\373vc\262\003\251\n\333T&\300\241#\016E*\301\210\n \262\203\202\300IX\217Y\0033\036\331\252\004\343p1\356\335\342\267\344\320\363g\346\333v\312\014\275=\244\366\365\256\311;\025oz@\001B\013$QBt\027\335\236\371\274\231\2673\240\363\010\n(\240\242\214UTY\016\267\271\234\374\243\027\200a*Q\354\362o\2743\314I\0173\036\217'^\223\335\367\212\035q\261\203m\233\027a\226>\356\322\016\256\310`\273/\262\322\320\035\006\271\256\255\372\363)\325\311*\246\356uL\360\352$\215\007\t\014\346Bt\325\014\250\t\335\027\274\n\201\314[\332@_\177\037\002V\345\357cX\337\275SL\370\320\204Q\210\353\255 \327\342\214\023Y\214z \326 6P\264\265\002\336\200\013A\346l\324\236\315\267\253\257\304\303\236z\267\327\0044\235(s\326\362C}\372\335\302\374\337N8\252\252\255\203m\327t\313\246\245.\016\2428}\272\353OX\205\235\220\341#\t\276h\315\334Q\227C\\\273\222f\341\251\264\2513Xu\221\\\356\006\362\231\303x1\033`\304\356\036C\264\274|\274\221\034<\266K\267\001d=\271H+iU\2523\261\002\262E\350\275X\002\274\353\233\271\273#+a%\351\376\004\220\234f\210\263V\246fl\214\031\"h\201l\022Bv'ry\361\301y\353\025\230\334\\C\246\\\357\250`\004\251\002,q\244\203\2373\346o\361=\260\340\205xF0c\024\242\212(\212\t\031\311\220\2453'\260\303\035:MR\342\027EJ\261e\t\234\371\224`\242\t$8\027D0\307\350\222o\341\352WF\005<q .\027b\025D\325ws\250\327\025\233[48N2i\267N`\210^\221\251#\016\367=w\351\241\177|\005\226\005\255;\311\005\336\222\224\017\013\256n\342\355\316\026@;\342\260\321\340e\303jd\003$H\032Gc\230\336}\005!\235f\314B\335\275O\\S{\226\n\362\373<^2%\226\364J\236\000\262\013}\222\314\215\331Pg\300f=2\004H\213\220k3\303>\nu\300\353\367|\\\264N\243m\264\271\217\210\317\267\337\2274=\356\251\326\210\212\020Pl=\301.\252]s7\345]\202n\3168e\025\206\255\205\372\212f\363\003\216\264\370\260 \207\235(K\016UL\010\360\215\221K\245\321ILD\t\006\010\216\221\261z2P\351\255Z\215\355\013'T\000Gd\215x\357Y\316[l\213a)i\263%\304@B\251\300\013Y\263/\\SrkuD\324\313\266\267i\231\261q\232Mm\246\007D\250\216\004""\0050p\3218\224\301\340\362-h\"E\354b\362\272\0073\247(J\210\235`k\243{\277\177\276\362\372\023\001\n\313\005\t\227\n\033a\323x\177\200\231\202\336\325\370\372\275\254\352*l\363l\341\342\301\030\246`\031\206Ft^\307\300Q\325\213N!\312@\347+\307a!\254\201\t\346v\317\017\036\016U\362\030\253\332H%\274z\327\227p3-\261,C\030\213\207\214\010\010Y\335\211\266)\201R\304\254sYV\370\270\234\357\313wnx-W\242\324\240`\r\210l\007\224\025\005\030#\026Xw\373Bys[d;\363\276\310Bl\t\021\364c\225\331\373\3314\310\"\002!\337b\036\354\234\232\273B\030\301\365zH:\2679\351'|\356\215\033y\302\256{]g\017w'\232\236\rHo\363\303\304\035\317]z\010=s\270\216\341\340\336\271t\261\331\362y\221\216\332<\020\215@`\031\023\016\302\245\301fi\356\300s@\3077PL\3413\032m\"X\010\302\032T\251R\034\265*\\\221'Z\272\327\227\347|\356\223\221\312p\225\202t4Q\347M#\007\030\002\"\314\264\242\210\215T\225\251\316\325\324\232\246\"\346f$\022I!\211MlY\332xB \2620\311\017\026\014\331\224\374l\335\320\224:\314\n\320D\273\366\244\203\235q\366[\354\277x\313\013\323\324R\357\271K\256@\200\231\222\013\260\035\311\252R\317\024\010\213\032\321Dp1\277\316\262\301\307`'q\220b\220\204\344\364\034\316T\230\010\220\234\201\222C\246\372\301\215\256\370\000B\035|\032\357\314\r\354\241\202\312\360E\030\306\201\352\301\026y\334I-o\245\351\264\025\276\322t HQ\204\250\245\3420cB\303lA\267\201\353\365\2369kNA\204H,\200v\314\246\006fo\310\030k \206\205\032\342RE\033\337\315,\030\032\001\255U\002\302\374\200\02042H\223\214\274\272\226$9 C\202\024\020\232\342\366n@7\0310:\214(\344\365\267\274\315p\033i\277\213\031Cq\nTT\222F\373y\301`D&\334\270\316\347\316\316r\262$\006C\2230\346\234sY\t\351\354\220\320\0343\300\345\275l,]x\357\177\275t\216\334Hlf\243\317\332\017f\004\366`\201\244M(\032D9E\345MAc-Hg\307\005\374\261\313~\376\255^\235\306\351\021\247\306\005\036M\342Q\276\034S\265h\302\325\222\037Q\022\002\025\r$\240\014\210{\036\357(I\320\311\021\014=\244\014J\3027r\274\307\253\n\360o\306\266)\200\264\0364X\245\322\234\231:q\020\236Tx""\316\036\346\036\2443MR\rX\244u\201\306\200m\r\233\007&\350\213\304<J\034!\304q\017\022\361\034A\232\356\000\322\365\035\036Ln\271P\265\205\201\014\271L\305\031g\221e#|z\321\021\t4\023-n\032QR\262D\262dd\0170\005\312&\\\240\345r\246P2\365\235\216\234\035\034\306h\353G.4\r\270\":9\356\347S4\244Ht\310y\344&Q\310\231\034\231\023\"\231\036\3029u\307ow\260\367{\271\310\211\202?w\255\232/\200V\371\206>\035<\227a\341T\264\023\227<\027YC\314\002 L!\201\230a;\ng\241(0\226D\362\260N\023\223\204\341\214\214lnu\273\272n7\316\302;\010k\264\271\367\274\004\033\206G\252pM{\366\267u\225\n\314\222\307\0321\215\255j\333@\026\004\264\262i\003=s!\351L\232&\r\331U[EE\200\335\270\324\231\242\303Nv\021\324tk\211&f\372u\255\276/\277\"G\344}\r\004TY\026\000\306 \301A\210\212\260\004\031!\312\004\342n\006u{\335d\260A\0342\327Es\335\235\317\237>\255\347\017\026d\347\004s\247\301\256\032\311u\327\337\214,Z\330\213[\273\360\034\177a\227\320w\334?\006\343pm\261\212\014N\240\303w\303\326\304\311\216\005\370\362f\354\213\331\376\270e\352\200f,\372\331\367x\266}\355\3101\026>\037#faG\217\247\360\223\035\006f]\013\025\356\034dw\363\"d\006L\262V\311Wq\353U\244\216\212\322\220\304\212\307\027\270\342\030\032\351\314\360~\356\177\213\346\312\352\327\300byXuJ\"+\3279I'yuv\201i\232x\244\2515\017\014\312\304Z\242\356S6\357\025b\246\320\251\357\371\205\213\273My\351\345zt>\026\266\016\354T\221(\350d\234\3116lR7\273\022\306\353\2715\336_D\357\365q\216\033\366\336c\177{9\327yS\206\365\244\013Y\316\202\352H\2665\274*\253\332\003\207\346\020\370\340R\002\030\201 \371\010B!\000\027\260\260\377w\331\260\204d\204\277\327\207\321-Td\020\377FO+\370\320I1\005R,\261'\200J\021G\357]\211\205\001,\000@\330\316\275\221\276\177\354\033\232D\260\177p_\027\310(\003\357\201)\003\310\037\020\013b\307y\365\317V\177\014+\255\310o\300q\302\303\353*?98\206\306\177\000\236\\4\213l$\005a(C\344\200T\2318a\0163\353{\376\277Z\253?\222\305}&\266@\324\254A&d\337\025Q\264(\250\333@\210g\351\373\\\276\241\362\022\377n\177\233\017\251\253?""\333\353t\006\243\315\236\257\216\375\310\2747\324\206E'\374\003\347\263\307\017\232\013c\341[\000\273\217\3160\034g\363\2511g\n\214\024\370%8{68\034>ZM\003\211\005\010T\222\246\333F\234S}\257\361\374\206J\313.O\367\375\252\301i&_\334\200\323a(\024\010\354x,\351\361\203\0375\265]\232I;|Rw\207zHU\264\006\374\3763\372\340\260]\224\323\361\037\277\343\367\232~6\001\360\374\010{\316>?:H\024\005(\257UqCI\245r,\315 \226:\361\020\"\274\317\240\007\354\353\373\035z\230#\235\237\230$\213\237\240\254\222G\240\245~\365\026\360\206<\0342\247\307y{I\027\022D)\t\004$\177\260\363\377i\336=\277\002\236\211a\334\373\021:C\201\271\034\311\232\341%\017\276c\313\003e]\344\267\361\276\277\026\222\357\274d\220\246\300A\316q)\030\300d\245\225\304\203C\366\\\267w\372\253\370?1\267b\357\323w\343F,s\223\"\010\241\370\272A\221\325\275\177\037'\3153\014\003\312::\267\373\251\250\037\237\020\201\330\241\347\201\037\346\344aV0n\341\177\377\307\223\177\205pJ\362\003\267\370Gp\320\345\022\313\036\021\207|\210\212\203\"G|_\026X7\274{\336\177 \231\021<\214p\214\244o\\^'\373\361\007\036&;\325xx5\267Z]\350\375\0330<i\215\346\0070K\302L\244#\001\341\231^S\213\307\177\000\376\367\213\241\201\275{\362\300\222bG:(\372\010\021G\341\021\016\341\225p>\0343\363\257;\321\343\343\340\360\3024\275\343LD\204\222\234\003L\202\301\035\360\023\261\335\021\024\034\374\257K\355\375\377\270\204\206G\037\371\023\336\207\334\006\2040\214X x\030\356\210\241\233\036O\016\277\350\372]\323\334O\271H\032\210\201\030\300\r\030\217c}\353\350D\\\334.\221=\004\335\235\376M\367k\246\033\205\210\207<a\3003\177\017\275\357\362p\005\027\301p\2038 \376\035\346\326\031\267\270\033\201\333\304\004\277\036\031:)\250\n:oOcz\366~\272,AF\344g\217\315\372\276}\377\230O\317\006\205\013\013\375\246O5\035A\320\002\337\315\210<*\\\356\200\363\241\227\260\247N~\217/\322o\221\322)\363\311bY\363\262\000j\"\204\252\001XM\277\252\262*:\001\363\307\316\372|>\023y?\177\303\342\362\315\252\300\202\276xA\363\026\302\305\204\235\250\020\333\025\217\2673H""\371|\237O\273\037'\204J\224\224y<\210\205\"\272m> \272\3363\244PY\341\016\000\205\325yOG\207\311\202\343\331\340\037}\353\3561/\211\300\246q7\034\233\354P\031\231%E\312A\356\247\235v\337\207\376}\022x\200\231\272H\177A\345\362\341P\035\231\364\371\302\362\214`\025\211\237\217\350<w\360'(\000\3537\3261\272\007\213t\"\004\217(\220\231\350t\311\341+\200b;\003\347\372\036\217e\177\016\320j\304\036\232\302^\270\365$`\020\"\263\221Yy`Tv\256\251t\242\326\032.rD\240r\300)|\370\317k\372}Y\362\256\261=>_\032JO\303\322'\321#\301\371\2422\300\205.\373@\231\030\013\203\247\305\362\374\223\345\374T\001\373\243_\307\370\355\346+\023(\224\356\205\322\3140U\220QA;x|_(x\374\276J\3049\341\250'\373\217\350\277\314\023BBp\204\330\257M\266\353\027@\037\206\263l@\371:|\276O\257\346\342\010v]\377'\346,`\213\\<\037L.\231\201\230\267h\206\003\005Q/\236\335\306\301\273y\303\317\231\263<D\010\242$\246\017\250|\310\2002#\343\001\3228\r\253\335\257\025\267\272\361\002\351\347\034\025e\210M\272\274n\"\020\243@\335b#\nf\006\003\240\274\276\017\321\371\264\367\241O\327\372TT\372T\332\206\\Hl\201\200\240\376\300\305\275\226\271i\314\363\272\326\317-\324I\003\345\030[\222\t\343\375\220\007\276{[\026\215\243\272\037v\343\355\310n3\244(9\310hB.x\355\310\t\303\t\345\277&\322\264Oi\304`\016\0307\010\201\346 3\036\263ak\364\231\312\252\203\366v\366\344R\022\271\230%\224\017p\007\271Y\365Z\327-mv}p%\210L\245\225\245\215\253\227\034\216V\332\326\332Vl\355\035\270\220\007\355\276#\310\310;&e#\340\246\365\320\240H\212a\337\364\237\371\254\266\213Z\361 \314q\332v\314\245\020\231Fa\305\031GJ\276\257:^U\347\3306\366\255m\226\341\367{\246\242\225\007*\022\265\003\330\203\216\336\330\333\227cz\3501\033\244\000\223\211\211 D\374\270\203h\332-Zn([\220\035{ri`9\233\332\027=\037\223\205\3105]\304`\225\340\362\022\375q\0060@\221\276\253J\256\330\\\031;q\313\223\212E%\3766X\007\233\202\333\275kl\3440\007\242S\216_\024\215\"%\224k\344\302j/\014\016\034J^V\231\271:\315l8\260z\036\006\353L\037\316G\320kW\003\351\271\202""\340]pqK$\200^\213\224\276\214\017\242\031\314\0015\356\266\335\361\333`]\3449\017\265\304\221\r\335\337\024\267o`\270\027\003s\326\2579\217T\204BF\231\313v\347[n\333\007\376\366\021}\345\346\202!\033X\345\275\306\017\260\013{\237`\322E)n\234}{\\uN3\310\341]W\277\221\366\246P&\272\244\240\355\235k.\272\355\215\223l>\260t\273\210t$&g2\217'\037O-\230\330m\200\331\013\200:\336\254\366j\353\355\033K\354Ll\312J\213Sl\354l\331<>\0248\337\221\263F% \312V[\234\312\2156\231{\355l=\232\003\002\376\214\220\t\216\323jU\336\031\035<f\021\215\372\214\345\35170\322\312`\234\275d\264\001\247X]l\231\317&\241\211\371\357\330\337S\034\273\376o\014\237\257\nS/.1\305\271\207\361\274\357\0240(`F\244$G9\233\344\363y\300\032\377[\335\201\377\310\335\216\253%\343\245\224\3300<\364\356\241\310\313\246_\275M\342\274\331\236\345\177\232\\\030.\371\\\314h\037B\006k\227\207&k\270I\277s\231\231\205j\212\266\230\344Y\254\013\367\243,a\034?I~\t0\376\316\270\030\377\300=\364?\"\235\360|\010\371\001\372D\353\201\302/H\r\000z\203\316G\365\201\354\003\215\017\344\233a\315C\300\036\020<\341\372C\330\023\256\036qf\007\224Y(\373tC \366\373\016\227\250\351\341\311\037e\362GJ\343\327\347\347\266L2p\244s'q\243\257-,\313\354_\267{\253u\372u\273N\216\371\364\224D\010\364Vo\320\363\357lc\027UL\220\357\307}O#\310\3239\005u\2609\363\276\342w\262E=\324=\337\013\254\035B\264z\225\341\037\034\335\367\302\372\251+\252\245\230<=\260\t\200.(\270&0bfB\2715\353a|\211\304\241\022B\300\031\313\230\213\265\021\017*\034D\0101\212\000Dr\346\204\010\003J\274\023\010\235-\366gl\240v\366lqo\036&\2218\300M\207\270\020\200!\201;x?\024\357\235m-1HW\013w\244;\031\021z\245\214``VD\341\013\373\002pl\033\304\214+t1\013)\211\2478\313\024k2\r\033g\024c 16\013\0241\026\221\033\303\344m/P\000\321`#\345\017\214\222\323l\354\256\020\306]J\020)\304#\023LS\22354\206\345\251d\024\013&\300\252\332\005B\226\005\255\2430\264,\346\353\344\3621Z]\026\2127D\240@\320\3010\035R\017\326\332\247\021\211\302Bk\024\035]\325\325D\320\374\221\036\037\2263""\342\313\001H\367S\001\211\222\201ai( \304\031\226\005\313( \226PY+\024\n\205\022\304\245\262YiYc-\240R\312J[+,ac\004F1\226\312\245\226V\010\254\215\260bT\030\215\265\236\343r\222\317U\013\352\013\257M\321\355\312OL\216OI-:\373\376\003\306\371;u\247\0313\241C\235\031r\345\271Q\303\275l\206\221H\037\376.\344\212p\241!\2315\250\336";
    PyObject *data = __Pyx_DecompressString(cstring, 11334, 2);
    if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
    const char* const bytes = __Pyx_PyBytes_AsString(data);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
    #endif
    #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (11978 bytes) */
const char* const cstring = "x\332\355|\313{\023G\263w,\t\002\004\002\016\204K\310\233\214\t\367\200\022s1\204K\316+\214\r\346\342X\276A \240\214\245\261-,K\262F\362\005\233$K/\265\324RK-\265\324RK-g\251\245\377\204\374\t\337\257\3722\367\221e\223\367\234\357<\317I\260\272\247\272\272\273\272\272\272\272\252\272g\224\365\365\003\373\327\177\374p\340\303\207\037o\254~\367\343\300\352\217\367\277\033X\215*1e&\235U\013kJ>\227I'\327\224\305\222^Tf4E\317k\311\364lZKE\225\213%]S\264\350\\T\340D\017(\370/\246\244\322\311b:\307*\257\244\213\363\212\252\254h\352\302\325\2026\253\025\264lRK)\013\332\232\242fS(Ii\263j)ST\226\325LI\213\036`-L\316\247u\005\377T%\231[$*\2505%7\253\274@3O\265\265\207V\373\324\210h\202ze\325\223\031U\3275\235\225\315\253\272R\234\327\224t\266\250\025f\325$\300hg&W\234\277\302i\243Bm5\251\345\251EV\035\345\004L\346\262z\261PJ\026s\005A\226\354\235wGD\\\024]'\3202\360\326\256(\257\211\2127\227\004#\362\271B\021\355(\371B\256\230K\3462Jq-\257EcJA\315\316i\324\321\310\030\303\321\035\260\354l:\233\236!\352\363j\241\230f\203\007\303\034H/\265\2542\362\213\262\250-\242[\016\326\275\305\254\355\230\242\247\263s\031M)\344V\250LU\006s\331\024kV\315`\354\371\202\246\353\324\007FK\014Qg2\2401\253h\331\322\242V0y\377\374\331\204R(\241\031\032\203\356\2030\376 6\350\300(*\031M\205\320\344\262\214&\010K\341\n\210\310hW\030F\342\212\222+p\222\023>\322\025+\026\265E\314JvN)\346\224L.\251\0261)\245\002$\250\210n\262Y*\261\313\335\003\025\322\310\346^\231E\303BlmD\352b\036'\212\340\255ZH)C(C\247\363\352r\032\025\270\024\260\272\005\255X*P\007\014\237\211\010\241f\325E\215\225\023D\n.\204\204()h\304G\320\246\232\202D38\243\352\351\244\304A\325E\265(\250u,\256\274Z\234\277\003XqQ\315+\271e\210j&\267r\005+\260\250\014\0264\225q\001\014H`\225$\212\271\004\027\314\250Y\224\321\226\265\214\273P\260\312\321\303\220s\312.\317\344J\331\224n\2375\027\006_\005*\226\217\177\271\344\002\227<\266\210\203q\002{q(\001O\351lZ\326\3032V\206\361\004\001.j\253E/\246\236\200\224%.w\350j\036\263\202\262Rv!\233[\311*""\272V$\016z\320\004\327\212jaN\363\366\303\211Afr\210u\005\204B\001r\221\316B\306\331\214\200a9R>r=)\312SRy\031\314X\nB\271\232\326\251\325\325\242\226MA\035\346\265\302b\232/\302t\226K\t\313\353\312\350\324\263g\217\264\354\254Njd}.:\253\177\240\204f\363\203\222\233y\247%\213B\346\001-\262\\\224\304\364\203\222\312\201\304l\256\250\240\261$\351`\306F{\225\250\362\260\220\313\347\231dJ\026GG\262\230\204tJ0\340\216\342~\036&\211Ak\214\303L\203fs6\372\365.kh\336\241S\325\\\262\230\231\320\2124\362\024-(Z\364\251+\244:\224\227\204\311\312 \221\340b\364\031\t\275\216e\221\245Q\316\220\306^\204\302D\233\244/\250\020m`\240b\361?\003\313_C\226\337<\347:SM\245H\361\231\232\347\347\373J@\311\275\373\312\2506\307[!\t\244\325O\274\"\341\271\213'\276Y\021\021\351\305|F[\304\252\003\021@\234\030\232\314\3452zt4\007B0\177\320\366\323Z\201\306*!\234\035Zq%WXPF\241(7\330\317\206\231\035\315A\353\025\347U\350\201\265\342<\227\211\224\226I\317\2204j\2315\246Z\222\330\333\010)\253\214\r\215]\275q\373\006S=\005\215\246ZW\364\322\214\334\021i\353+\2453E\032\004[\034\312\310\254\262\226+\201\004\316\266<I\222\255\002\206\312\326\010\033\363\005\306i\306\207\004\252Cn.`\253\307$\025\323\313\032\325\036V3\272\026\375e\346\335 \223\310\r\"\356\227\274\3064\365\304\320\263t\266\264*\027\326\2311\307\326f\237\205\200\022\314\302\030\2663\005+\021\203w\326\360\2033|\010Y1\215]\216\365\232\326 b\343\032q E$\251E\360n\246T\004\037\356\t\362\306\030u\027\317\210\307Y],\325;\312\204\2066\224e>}\\\335\021\220i\017S\210\301\206\331\214:\307\245\204$$\245\026K\213zt\242\224\204\345\241\317\2262\230\261\0348\002n\273\0312\261\226\005\223\365\364{j\220\265\346$q\0223\200M\201\266|&\241\326\226\271\250f2R\000h\236\346\323s\363&\332\035EVt\030\023v6\231u\034\030\266\212\304\336\316\275\021J@\005G\007\014m*K*\321\266\253\253Y77X\031\326\370\224P\323\261iK\245+?\256J\260\217\026\241\346\365R\236z\322L\3230a\333\236|\021d\221\362A\271\177\277\357\376\235\350\2313\312\305+W\224\273W/E\225\253\312\035\345""\207\003\373\017\334\273\242\234\271x\346\322\317\312\207\273\312:\375\274V\2247w\376\253oc\343\374\371Ko\257^\335X\247\372\027/\335\005\337\023YZ\270\320\203\260?\001\346\031\266,\245\252\310Z\223\253\\\235\231\201\242P\256&\211\035s\244\203\270N\207F[$\275\017\363\234\231\351\375d\246_MA\252T\261B\243l\251M\253\205\327\330q\336\244\264\345tR+\0264\246\\\310\024%\215\007;\002\255\277I\245u\306wscHg\347\265\002,\014U\364\023\275\344\3324\242\032\233\251\331\365dq\365\003\021\236\346\252\375\216\"6`\016#\275\233\321\212p\004\222sb\253\332\220\031\205Y\340\3639\222\2054)#\255\010\327\002\206\347\032\251\227Eu\r\345\313\264\035\303\016\205\"\321Hm\351\230\020=\n\025\227M\t\003z\303\376\240\244g\362\220O\016\02699\026\220\223\203\3443HN\3423W\302\306n\230\237\363%\373\306a-\337h\000\256\311\027F\255mUv\207O\263/\220M\026:\036\306\231|:A0\224\235\220I\022~)?2U\371\2320\237\370\336\373\000\023\256\251Y7X\212\327\245\240\202@8[@\336jLJ\335@.\264.(\337\220/\006\200\315~\002\312y\002\375\304\264\242F\306\226\207\030\276\306==\220\303\341\206\301N\327\241\350\226\323E/+le\356\"?N3\230\265\222]\245\344\363\230\260\254\017\236\256\347\222i2rH\345\025\344\224{\213XC>E\314\200\260\223,qR\271Er\234\2012C\343\340+9u5\3039)\370\n\313#=K\013If\3104\223*1\221\200-UJj\211\204\222*1u\235\315e\257b\000\313\264\243&\022Ix\251\305\004\024\0353e6D\252H\355\306(\276L.\336\037\2732\232\250\246\256\361\375\340\2222\221+\025\222\232\271\217+\260\363XeS\223G\257\346\363\3114W\200\314\345N\027\226X\312\032H\302\255\222\272\304T\013\\`8\323\351\027\n\232m2\264\244MC=\257\322\006\023\345f>\270j[\325&\247\230\341\354\213a3\354\231\346\363\301\361\335\305\002\233d\206:\031\370\272O\241\315\226\216^\325/\3200\260\035kri\350Zf6:\003\017\363\n\313\321\2049\254\347,\254\033!n\2522\306\315M\341/0\207:\235\\\310\220\257D\225\311\021\347\3150\023\307j\221\347\230\323\363\0174>\217Y\370\207\232\341\271\034\315\374\3077\370O\215\364\037i\307Z\374\2201\266v\314\200\226\000\374\300W\001b\024?\220)\200\266S\321<""\014[\237R\212\007\370\227Y\241\200\300r\262\t\374\013\305R\361/$\241NJ\227\336\037C\357\330:i\"=\0350\246\305\214\036X@k\310\277\020\032\261c\227\230\t\356D\007\225b\236\374\313\220\203:\362/+\314\250\311`\232HI\005\224\004\326\201p\221a-\002e\276(\360\036\003\253\223\036\242]\313\277\224t|@I1\235\361/YE\004\330\306Xl\222\367xxLg*\376g\266I\210\010\213H\326\371f\022\233\036\007\235\374\227E\003l\331\250\271[%\331JI$\234\205\240C\207\353\352_\314\265\274\035\302piO\342\300\240\326\203\033\216\246`\216.k\t\271\201\010\250\275\247\250\010\032G\357\221\033\224\321\177\216\302h\246p\254(\266h\310\256\r\232k\017\017\"\000\215\034\205\\\031O\262k\223C\224\241\030\250\205\353|\362\016\302S\356\031\014a \360\313B-\366\274\177[\266\322\216-E\205\271\207\215\234\300\026\351<\347\337\270Y\346\333\264(\025f\016\203@td\032\320\"/\361o\217\312\204\335n=\233v\277\t\342\023*\314m\221<F\330\017\352|\244H1\232\\\301\037\352CR\020\236\227@\216\031\330D\247:\246T=`\252\236\377\022\357h\251\361'\277v\005\334\247YVb\266:(\014y\231\016\315\260\230\266\034M\000\330\333c0\242\207\004\211\352b\\\0008\270\253.\030\037\204J\221\177s\350\301=tjR\n\233\371l\261\224\371S\374\327=F?\240O\377\001h^bx\034 \240\201\0165l\304\232GK\266\354\020\264\232E\263/\330\257\323 D\037*\374Q\371\274X\205>4t\325\177\227}\007\366\213 \250\273_\t\352\330\257\r\251S\277&\332\275\214\2728\223R\177\366+\363\233\"\2565}\270\342,\350H\243\007\265\023\245.d7\237\334\305B-%\222\3202v\274\216\004mCBT\243X\037\n\0350\363\024\324\016\235\245xv\202\371Yv\260\037'\2438t\363AeG\252\tf\333[\033\255\225s\255\013\037\250\357H\375\361\374\006\355\207)\231n+\243\343\010/d\273\276\005\3166\3752\254 S\307\007\325\316][\2319;\036\330vd\232X\333\020*\360p\000\227^\365-\361\241\314;y\335L\\w\223\0264ar\263\266 S\272\306\316\037;\331z\235\355<[\251}\224d\245\213\304\267EQ\340\327\034+\262\265U\242\013\030\362\352\004OX\320\323\236\237\246 \274\007\020\235-\344\026\023\216H\276\035\307K\230\253\324C\235\243\334$QB\005w\305\243\235\244m""\250\t$\244\003\r\366\356m\241{\307\203\224\003_\240_\247\376h>$\330\020\267ig\373\372\346@\\\026\333\266\226^\027\026\236\033\205-\010:\222\037\236\200\350\263\037Y\346x\360v\346.\366t\305\020\244\014\260\207\200F\002+[\234`\307\241\366\353\n\356<\353\303~\235\301\333\225\263\324\333\243\275<\223\313-\224\362\004\032E\200\220\357\245\316'\223K\276P\377\356}\361|\t\361\303\204\226/\342F\212\030\250\017\006\233Kg\331vtl\337\277p\313\\@sb\330\205\n9\001\216\007o\327\356bO\317N\004\246\035X`H\336\332\220\251\034\261\3739\240\313m\026\257\304\371E\304R\334\255\273\341\301\275\370`\006\366\026\334J\307Z&\343\037\263\3137\342\364\326\345\217l\353\305t\341\277\370\372e#c\313\0031~\245c\304v\214\350\310\213\n~0/!\001X\036j\354x\235[\331\266\266\311\301\021y\342ieL\332]\000\277.\275(>\375\n$\266?:\237\200\237\307Qn\202\237\374x\312`B\330\240\035\372\357\330\257m\260\350\006gM\023#\017m99\\\017\304\247\077\077\034o\307&V\247\026\266\251i\243\231\235\374\211p\213x\222N\275|$\375 \363\314\2016\037\370R\344O,V&\362\374b\212x\3403#\362\350Gd'\254\223\000\tY[\234\311\311&(^%\262\330\246\n\362\256\225L}\006o\225x\207.\216\331\315TN\213\353\331\257U\017F`\353|\240\366\007\227\004\272\212\270\000\n`p\327\235\272\264\315\244\274@`e\314An\257#r\335(\010\211$\306i\177r\017\324U&F\032\254]r\235TK\316\243W\230\254\261\237\207\2703gf\\\n5\010\356\355\277\003\246\207\234@\\\246\276\315\322\016\235tl\3255\310\200f\002\233\220\276k\202m\355\374\250\302\343\307rL\253\243\334\n\203\360U\313|\263\347\261\227\317GF\021\001\177\310\257\341\244\220%\253D$r\314\256G/\261^\004\017\331\002%\260n\247:\334p\222O\346\200\004\200L\234QqU@\246\222\022\367\263\267{\037\014\017\035\022'\270v\307Z&\301\2439\256XGsv\023\3719\335j\032\315MXX\354\316\202HF\306\234\2673\315\2219\037}H\363 x)\344(\201u;\3251\007%oV\312\324\265^\002\300\336>\203\021=4H\324\340F:\326\262\316\214M\242\243\302w\266\000\236\361E\331&\005 \252fui\240\272\r\325\355M\334nL[\211\023\\\333\257\326\230\355\252\211=/{\362\203y{\010\300\352""\330[\347V\266\255m\362z\314\274+2\255\221~3)\017\200\373\364\033\214\351\245!\010\227\251\3701~WG$&%\316G\037\002<\010\336~9J`\335Nu,V1->\250\346\325\231t\006\306\225\373\331$8\000\356\323{0\246\227\034\027\356\366\255u\325\212kt\024M\261rhA[\222\225\004\200\277\226\340\002\322\033\016.\020\263Ll\020\036\225\020\366\253\203S\333\361g{\256\270\304\210\301~aW/\354y\324O\346\362k\262\222\tLiZ\336\267\300\227\032\2634\200\026Q\356\342+\355\232V.\250\355\240]\331V*N\266\355\020\266Us\0007\364\355\371\240\256\314\322\200\316D\271\275\361I\366\022\314\0307\031\307\234f\355\330v\206\360\330\366f\260lY\274$7f\263t\307\002-\3421\037{x,\310\032\036\013\266\205\307\334\226\360\030\331k\330{\371\313 \374\tN\3200\254?d\2639TY[\305\037\275\377\007\303c\2658\256\315\312{\030d\0371\212\002\"\323\201!i^\200;\233fff\315\025\237&G\217\376bt\247\317\314H\276z\000>\235\373\240x\t\361 \261\245e\202;4\333\2619!P\326\263c\\\256\000\257\017\310\277\337.b\307\204\346\262s|@\376\315wa\037\021\332$Y)\354\304\317\371d\357\317\013\365\357\322\027o\233^\275Se\225m\327\313\366\255\333f\316\006tL\237\177'AM\273\352\262+^\264x\360\252\223\355\350\224 \362\\\013/\207\214\214N\275L \3202\032{>4\341xY\307\361`\252z7\324\322\365\356\022\250\266D\302\343\320\271\261\\\343s\027{\006\352BH\252\311y:\306\226\3260?\321\326\267\351\226\356j\352n\020\335\267q\302\254\333T.8\177E\304\005dn\221\007h\362\335[\"\rxg\201\264\342\335P\333\231\220\253\214\277\234\351\002\312\367D\\`\373\373\036\236\"\021't\303y0\016\027\n\335\005\"\262\343\001\373\267\317n\306\273a\314\206I\314\360\240\236o\231|\203\301\277\220f\302\277\204MG@\021s?|\313\030\221\276%\354D\322\277\004\304\373\026\330n\020\373\226\323\n\r,H\344\n\t\272\027\027\210\020XHw:\235\005\342B\256\213S\362\335\0047\230{\307.\250\375\035\000w\021\267\353\335Pv\033\327\003\364\223\014y9\327\r\316y@\026G=\213\222_\266u\003\005\237\370\345Bo\231\013D\234\323m\321^[\326\265e\005\227\370\350\264N\270^\005\027\214\315\266![y\307\256\266i[^\213\263\203\370\333\356\364n""\257\035j\356*\210\356$\027`\215sKV\356!\374\014\320y\370\270\335\361\347\366\307\236~\207\231\035/1\361B\036\225\312v8\361\014>\351t\234p\272O6\3713u7\211\373H\223t\373h\222\374\206\361\334\n\205\377\351/&\345\314\361\340\262\244:\225\371\020\333\031\333;\004;\276Kz:\225m\323s\027R\333\021\237\317\236\035c\233\016\267\355AJ\257\013h\256t'\\L\251\003f\315,\300>\223\324\325\334t9%>3\321\325\004t\311\367@v\377R\240\361Z\271 \201\014.\365\247\253#\276/\211x\217\326\377\272x\320Uq\3735q\327\025q\333\365p\226u\314$7\343\354\203sB\374)\360\340\370\322\343\302bl\236\312\302\270\243S?\372s1\303\007\344\355\336\037\311\323?\241\271\346\331\007\344\337|\027bDh\376\225\003\261\203n\036\262BsN\246\355\001g\307\203$\307\027\350\245%\010\315C\234\003q\233v\266\257o\016\304\373\215\"/\204;=iTH$|Ky\204\305\267H|\230\300*5?\305\364rh\324t\320\344\267:dj\013\037\332@\256!\333J<\2435\313\370\227\216.'\022\252*\226\035{\307\221\375\254\022\022\226\033\n\315\017U\350\364\260\206\177\t\2742\273\240\321\367\\tU_\313&\3239\3706\205\034\336S\312\242\rs\325\252%8B\274I3\307\332\235I\314\314d\026\022\364\252\032\271\001\364\227\340\237\253a^\032[t|\345\315\224\250\243\244\345\225%\347\341?%\347\361\325\211\344|\201\265\220\340\036A\"!3\346|\010\237-\211\227\2664\314C\002\323\233\324`w.$39\035\026\017|%\274\302\313x\256s\337A8t\344.\244\350u\243\202\374\016P\n\243MS\005\323\267\263e\0233X\017\013v\277\317\364\364l.\237\364\246\231\351\202\217\000\320\013\220\326\327\007l\237!`/\201\246\222\311|\n\237\327\230\263\273\333\362\343\\\316\017e\311G\250\023\307UJ\363\0016\265\314\2235#\363d\371J\317S\244l\022RZ\026m\342\003c\256\327\256\\\217\036-\300}\005\247\327\212\247,>\324\001\322)\302\307\023|\346\004\231\\\222~\026\361\357G\374=|\216\237)\026\252\243\227\255s\370\301\273m)xmLt\314\014\023\037M\304o\351;R<\270\256-i\024N\224\267\321\315W6\005\2554\221\344\342\360)\315\345iF\311\035\344\317\314\240\024\020\353\356\272\355\276\372l2A\337\010\302\227\2642\251\331\364l\216\211\235\374Kd\324\031""\370\270\263\342\322Z\302\314\310>\314\325\352N-\006\312W\r\254\013o\336\213\261\200\274'\377^|\226\251\250\352\0132KZK\344Wi\365\211\340\000z*e\223\244\237\330\364\230\321\001\254\017\374{\226\233\233\323\n6\355\305\262\\S$\34623\231\322\314\034\226t\236\375\314\254\315\367\317_\223G\024\364\371\221\264#\252`\305\021\322\311\305\274P\017\351Tz\016\017y\225=\260/[\260\373\340\354\307\032\274t1\\`\311\023\372\206\223\324\242,,a\205&\260\252\322t\255\206\005%\314\310\004\217EX\021\211t>!>\n\224\316\213\257\021\245\363\3137\3607\000'6\221\246\325.tWZ\267\276^AL\201?\204\327\206I%\275[X\320\nY-\203Q.,\346R\013+\244\3732\375\231k\222\314\004\302\010Y\237\330\027\363\257,'\213\007D\360\311!\3666~&\313\225`\006sA\237\225c\276\2743>\342|J\220\233\223\3007\205\\\201\022{h\304\021\014q\206?\354\001\017{\210\303\026\324\360\2061l\341\007\237P\205+8a\013G@\331\343\037\023\026zq\036\242\266\010=H\277y\374\255&\350\213T\264\206\223\032\236\364<\016\322\350\003|(\327\204&$\2214\267H\20438\335\224aD/\332\324\254\014v u\034w\243^.U\242=\002\271B.\201M\2356\021|h\2011\222\263\223'\354;\000,<b\306H\220Y\324\347\262\350\265\300\366.+\307\324\020\352i+\374G\264\306\226;\373\265\256\352f3\324\006\224\217\214\261`7\345o4\203\337y\350\"\213\0179z\275\010J\217'\3752M\320\022\020\017\327dj\007\262|B<\3509\361\222\022\375\017\225\215\2573j\205<}\313+[$-\346\010\352\3200t\031\313\021\321\033\376v1\377%\341\004\215\264\224\344rr\034\034Y\264\333\263\224\247\016)\003\366\223\342\317\343\230\007Q\333\344\202N*\233\236\370\247ix^h\035\3122\331b\271R\226\275\225\257\211\227\200}\201/\371<8J\234/\342\372\024\3127g}\212\270\313\357W\340%K\334J\364@\311lq\001\345\225E7\230-Q\017\320\262+\002K\344\213h^\014\377a{_\r\352\210\300w@/\n\337\317\034Pa\321\372C\331\251\233\247\310f\037\270\312\330\235\1777\314q\357\334U\350\270/\356W\346\355\303~\025\330S$v17\334\274\232\352.\020\227:=`\276\025y\300\376\335\372\t\243y\341\316\005\027w\307\\Pye\313\r\346\032\307\005\225\027\203\334\340\244\357\374\332/\274""\270\213\002\356\241\270\321\270zqC]w(|\213\203Z\264\335\021\360-\362a\221\375@\336S\3447+~\262Kgl> v\010\353\003\267\216\370\\\205\266P\253\253\304W\312}\224\217#\260\345*#o\334\005\232vn\212\2162\351\016r\3602{\277\222\366\313\245\222\232\341\373Z\241\320_\270V\270\316\277.\313\177\213\346\320\270\023\311\177=\326\217\033,\255%3\372o}\027\311\343\302\232\000m\225\2624\331\330V`e\3407\003G\216>\022\313\3421|'\341\237\231e6LB_[\324Y\306F&\035,\340\243\2752\202\354\214$\353\t\235\233\034\354\223\257jQO\232\206\253\236,\346\341,\226\360A\2645\372\270\214\370\006\010\014\244\224\343dB\267\317)\250\0226\001r\322\214\247<7\265\345\247e\314\017y\330\274\364\204\217\307\256\317CD3\364\355D\030\326\314b\324\331w\232\370W>\3503\277\314~\322\311\222f5\315\020\206\231\361L\215^\\,\212\253\036\326\217\007\313\003\2273\310?\225I\277yl\351\370r\024d\016l\227^\217\316\026\032\377e{\272\276\006Ff\370/,\341e\221\233\325E\206\233\327\342\001F\033,\207\031Q\211\314w+\007\301M\257\212\307\345\305b\261\277x\255x\235\177Z\226\177\262\265\230\314\343\237\360A\304\tQ\"A<\301\357<D\300z\273\230\277QL\214\265\275[l\313z\330\301%f\236\244\232e\241\347\361\235Ln\264\220\320q\307\317\024:\347QT\321\214'2\206\360\257~\226J\375\245k\245\353\245T\276D\201\037\224\302\253\304'-KY\346W\"\223\247\205K\276\235)\026d]\263\356\330\331\225\303\340e\016<\217\245\360\200\n\034\225,\375\241+\221\350\364\375px\367\364\2653b\350\"<\311U8\333\334\246%\322\326\376\352iG~\254\367\324\217\327\227\312\375\364\360}\255\2776\\\357\243\354w\325\376\352p\215e\373\353\275\365\363\215\236\277z\376>\362\311\376o\214\177\321s_{\337\211\362\322V\344\323\277\2267'\312=\355}\373\267\"{\332\373\216\226\373\267\366\035\334\214m\306\267\"\237m\2626\257\325\373\352\003\215\336\352W\265\033\265%\002\\\256\365\325\006\352\275\224=S\355\253\016\324Xv\240\256\326\227\033\361\332O\365X=\376W\314\210\234\256\374\227q9f\304\246\214\251\351\277\367~\262\377\250\361\305\271j\274\232\252]\252\367\327\207\032\307\033\253\315\325V\301\210""\217\267\017\036\336\\.OTz\332G\216\033\307/\325zk\347jk\215\236F\357\326\021j\037\004\035\336,\226oU~@\311\305\372\331\372b\223\321u\266\032\253N\327X\366J-V\233\256\367\377\025k\003u\243\322_yX\355\261=\030\n1\351X\375e#\336H5\373\376\212\375}\340\223\375\275\345p\271\277\374\260\322C\315\257W\372*7*K\355}\237m\016\224\277(\367\267\017\036+?\253\366T\217V\207\320\351\331\232\332>t\264|\275\254\022|\244\022\257\244\252\227\300i\364p\204Xwxs\311\336\365\276ZO\355X-\356\323\315\037\254j\337\307t\263\265\357k\343kL`\373k\314K\373kp\275\355~\274Z\213o\355\333Om<\255,U{\332\007\217\226oW\006\320\311\223Z\222\317<\243\264}\360\0136#\306\371\221Vo\353\26219U\211Uc\030\210r\275\316x\376\276\362\025d\350q\355I}\266\301\206\247\227\373\312\327\215\343\347\253j\025\224\374\275\357\223\375\007\250q\020\\^j\037>b\346\211\031\237m^\337T1m\267+\327*q\242e\250\322[\371\2562U\275\300G\n\2118\364%\361\245r\254\362\0023\031\247\036\013\345\336\362\331\362B\265\267z\266\232\256-\325\367A\n\2165\342\274\275\033\306a\245\032\256\022\335\345\213\230/\320x\242\\4NC\346\333\020\331gh\352\313\212*\330\364\367\311O\366\037\334\274\001\216Op\016\000\033Ml~\250\214T'j\014r\003\342\317\222b\245_\364\260\271D\005\327\312\361r\252\362\275)\253\017\033\007\232}\315\033M\206\356-\354qT\026\255\336\0045_W\247j\337\327\343uU\"\024i\306\217\224\017W\nl\204\013\230\214\263\365tc\251\031i\216\264\342\255\2241>a\262\205\026\005\361\373V\345L%\326>r\3148v\226\t\311w\265\251\372\205Fo\243\017\230\275_\022\364\001\246\243\310\327=\346\355\340!\033\362Y#\372sCm\024\233\375\355\243\307h\r\036!\032\272'\347\265\361\3727\343\267\337\215\337U\007]\245\362\243\312\365\312\014\030ku\325\267\305\363D\315\022_\261\273\352\250\333\001\3105[\202\354L\326N\260\365\375\272\331\323<\326\224\342\0022\037\2243\325sU\035\3626[\177P\3174\373Hv.Wb\306\277n\325\227\032\007\233\217Z\375\255\330\326\356\220S\025\013a\270\2516\227\354\335.Vo\326\302\320\227\313\365\361\372\207f\314D\374\t3w\265Yl\375\204\325\006\265\270\265\373""\n\366\356_\032/\1775~}e' \013\366\035\255=\254\357\255\3174>o\252\216\241|\336L\265.\031\023\223hr\253s\205\007\3067\267\261\004\277\331\216\2001c,\016E\336\r\0014\240h+\322\032Ac\306\364\213\255\335W\350\310\201AZ\325R!!k-\335\363\320\267\307\252q\017\352\227\254\364lE\265P\317V\346\331\332\272Y\357\261\213\334\n_pv\320ju\251\026\201\242T\353\305\006\nHRI\373\254\226u\"\362H\371@\245\217\t6\266\\\361s\034Z\336\366\303`\247*\275\355#_\021\3527D\306I\350\220\343\225\345j\274}\352[W\262\304~\376\376\234\026e\014-o\276\256\034\300Vy\263\366iM\207z8\321\304:Ew_\223\352\300\317\026H\330\313\030v\344h\371\016\333X\276\257M\324\303\365\353uu\353\330\251\312\t\360\344d\255\327\270|\267\321\017\332\277<W}\n\355\333\323>v\002\003\370\256\022\337:\tk\242}\362B\265\204\t\352i\237<]\271W\335\250_\253\307\333_+\250\372\0258t\260\361\274\325\273%\036\357\325\227\320\314\251K\265=\265I\354M'/\312\014\232\331B\355\373\265\203Xb\330\252.\200o{jo \342K[\354\341P=\336\005\302\327\320\342\343x8P?S\217\331\006P\373\001F\003c\367\025\314\221^\3533\276\177\320\3543\265\2215-+\025&`W*\252\320I*\311\325\255\362\005\354F/\231>\371\224f\322\216\363\003i-c\340\271P\324\355\035\342\323nyhs\230\357\\\260\2666\277\242\255\2022'\312\221r\2142_\227'!\000\254\250\337\221\010\304S\345K\260/\010\325\330\177\n\035\307Y\356\333J\261j\241c\363\253\307\332Wn\326\247\0337\240`\367\265B\255\263-\265\305\224\323\3766\333\230B\2149r\303\276Q\336\300&\037#\303\002\306\2274\355\360t\246z\221=\034\253\277h<h\250v\020\251\357\271\306xc\2459\333zj\274x)\254\022f|@\301\264\277\206\030\265\335\217\260O\2668\t\264$\327\311\260\363\030\"\203\315\376\346\223\026\353\353\273\352mf\372\\\371\021\254-4\276j\016\264\030Y\337\327nc\327\035n\364a|+\315\231\326\247\255ec\2126\016\253\322\260 \357}\3538\r\234\214\336\336\362g\225\333\322\222D\277\237oj\334\316\352e\026\207\206%\274^;S\0336\256\r5\343r\033\227\006\027\231\303\343\233K\345\3754;\002\366=I\326Y\250)\246D6\260\035\242\261#\306\221\013\325U\254\234H}\244\0217\305""\316\215-l\022`+\325\210q\366V}Un\205\355\177c'\021\365h\263\365\3245\016\177[\321\253}\254\362\231\352Y\343\374\275\306\343f\2549\331:E\"9\364\264\325\357\252}\214\355\331\260\037\311\ne\nk\205+Dn\203\036\005\014\243\275e7\177\035\260\017\260\254\247\230a!\2532\203\2536X+\325\0375\372\0331\316\240\241\362\261\3624\315$\331p\324\000)\264-\260y\001V\037\014\230J|\033\274,p\306\311Z\265\360\022\325X\247\366z\260\242\366\034\332\214\265#\0077\037ap\303$\326m\346\317\274\200\261\311\226\307\027e\341\346\320\017\225a\210\207\215\303\227\310<\257\315\301^\370\264I\323l\207\364|L\303\321Z\n\274\272\325\370\276\371\202L\005\007\204q\240\217i\251\363\020\220G\215k\215W\315\345\226`\314#H\334*f\340 \315\336u\261#\320\2003\230\006X\320\025&\337ga\215\307j\361\366\325\376\372\211F\250q\2719\334\352\263\340\323\314\034\375\264Qh\236h\355m-\302\244b\013\263\362\2309J7j+\330Y\0174\317\267\004\217\037\223<|\276\231*\237\207J8[y\207\r\354!\010{\334\030D\013G\233\017[$\243$\364\022]\210\024\317\356ej\356\004\\\235^\251V\271\017\207:\237U\372\355\210s0\226\325`\244'\330\230.\222L\223\200%i\013\024C_\204\266{\200n\304\"|JZ\320!\334\0077\237W\276a;\357#n\211S'\207\315\021i\325\2370\242\375\306O\243\320\200Ec\342\225\361\352\255\3616A\235\037\252\274\201&\353G\361\247b\307\206\253v\3108\370/\232\334#v\227\315\261\\\\.\033\267:\343AN\233\360\t\216\t/g\252z\246\352r\345\016\212\036m\243j\357;\004e\263\\\206\372\270l\\\246\225\257\265\356\030S\260nRFJ\343\003\234\205\315R\202\243\271\007\306\000\347\344\026\223\233\201\312\321\312\020({X\333\207\275\375\006\271\343\215\031\230\002G\260)\302\244\276\202\341\356\251\277\2025}\267\245\332z\"\357i\244\034\267A,>\206+7\253{\214s\367\032\017\233{ \324\217\215I\330\351o\314\371s\3248b\034>\017\257\350\034\004m\2761O&\234\033kk\337E\343\342\317\360\301\3175\337\033\361)\256\270?jL\227a\256k\365;\215\311\346\351V\214\357\360\237[\024\365\222Bf\366\033I\272\325\305\313\332K,\365Hs\250u\322\210\223\035,\272lS\223\337c\251\224\352\244\33009\223\325""\336\366\301\023d/\260m\366\340i\322\364\225\245-KSr\317\0266\233\323\305\355\333\262\346\237I\205q\346\006\"#\223d\240\034+\307\314\315\345R\355$\217\316\300\321}\321|\320\234kM\033\023\t#\361\273]]\364\210]x\2569\335\272\013#\230\312\316a\024q\270*\324\346\211f\250y\001\273\335\272\361\352\365_lU\253\\\244\017o2\275\301\237\277\370\344\320\267\260+\367\035\221\233\341\347\233s\345qH\367\000\314\025\222M\266\357-\203\330\231\352\247XV=d\316\234c&,\031\251@\274]\275\003\355s\204\320\010\n\303\213\006\374\272\026\252\2357~\304\346\275\205\245\313\214m\240\213\021\376\375\315'\373O\260\000\001\366\242\030\211\332 l\356\021XM\361\352\0343\n\305\002\351uy\274\334\250\373\002\306\t9\202g\330\022\037j|\001\265\031\337b\205a\263(\266e\371\337\327\261\231\223\221t\350\213\362we\261\225\227h\303\330\022\306\017\271\356*\267\335\377d\263z\013A\245>H\326\222\023\330\3074\2460\3501O\306%\022\\\250\375\213\220D\232\220_\033\263\315g\306\330\264\230\017\177\204\347F\374\005\263\220\376\276L|\200\t\016;\253\314d\3768\231{\225K\334\316\201\362\276\335\270\325\374\256\031'\003\200m<\334%\321XH\211\306:\310$y\017\002\nI\362\377\245X\322\016\375\0222p\212*\233b\205\255\347r\355\002\223\254\275\r\255y\253\325\327\272\321b%\3370\247f\031\262\223\202\247\360\005\037\335\371\352|M\205\363\031\257\247\032\027\232_\000\377\2741\366\306x\3636\260\360\025\0235\253\271I\347\216d\355\350\021n\\ra\370\212<xF\006\026\332El\036\307k\234\355d\330\020\356#\246\224\231\036\204r$G\207\351\2165\022\020V\377\320W$)\204\334\203\335g/\333^\373\231)\362\030[\326\236\326$\374P\342\356!\354\r\307 \232,`\361\036\214\306\274\267\217|Y~QyT\275\213\341,\265{\277\"\301\376\252r\216\255\354#\247\261\374Yy\014\262\371+al\001v\223\350o\3333.\254\367X\320\373($\022\343\032\324\031\304\322\254\341x\243[\021R2\376\005#,Ry\t\021\207\207p\255\273\302\242\t1^s\315\341F\177\3077*0\360 M\000\2552\341\276\026m\031\271\255\332\0368\276\255La\321\315\343\265\"l\2323\215'p\000b\302\265\3401Z8\213\304\237\361\362\032\213\016""\225G\214\177\335\207r\376\022\273\001Eu\372\353'!\273g\033\351\346\022\\\372a2Z\271[\\\344A[Dy\266\230\321q\2542]\355w4\352[\233\323N\314\377\255\372%\364I\274\246\362\021\220[/\026\3642\363\345/p7\217\227\256\010mv\235y\362\267Xp\234\341\256\226\227*\266l\004\256\263\025Ie\322\t\267\211\\\271\203\366\360&i\364_\230\312\030\250\177\t\327\203E\231\315\245\310]\202\275L\225\334j\236i\306\374\200\217Z\003F\\.\270oY<a\257}\201:Aw\260\017\364\363\241\254U\366\032\337\374\310\"\245\307\261\263\337j\235i\305\3327\357\203\206Y\254\207OY\200\335\206\031\255\315\243\317\245\366\255\273\254\333'\255Y\332\375n=j.\265\243\003\001%\234\037\264\206\316VfY\270\255\327\016\232\257.Bw\3657\206\232\307\331\274\304\354\205\013,\332;\317\365\250AG\007\322\274\177]\355\221\346\375\020\233\356\033\210.\014B\260\372\261\245!Ro\232\2019\266!\365T{Y|e\t\201uD\374\017l~_\216\033\021\026\352\346\355\275\255\366w\325\236\361\271\"\366\225\0305DG\022\263\265\030\267\372?\337\234,\177\305\274\036\212C\245\240\316\310\n\356\322\017(V~\202\200\334dV\312\006&\342\\K7\306\261;`I\316\032\263\013\306B\326\310\026\214\302\373\277?\371d\275\347A\010\311\203\320`\310r\036.\302\216\215\325^\324\237\302\257U\267\234\220%'}\177B\016\256@\310\242\306\030\254\027\315\320\322F:g\344tC\177o\274\377\003-\377\331\363\210:x\024zJ\311\323\320\004%\023\241\027\224\274\010\275\014\355fL\177\300\376\033b\346\022\242mI#\371\316x\207>1\242e4\272\322\363\220\332~(;\034\243d\314\325\357\034%s\241,%\331\220N\211\036Z\246d9\364\236\222\367\241\177\207\221\374;\374\210\222G\341g\224<\013\377B\311/\341\tJ&\302\257(y\025V)Q\303\263\224\314\206\323\224\244\303\213\224,\206K\224\224\302\033\224l\204?\204w\344\372I&\2573\323\222,\316I8T,\000I1\306\335\260\356=\032\330\323\232`\263\005\346A\"`\314\317\031s\020\212%ci\325X\375\000B\377\350\211\021\017b\241!J\206B\317)y\036\232\244d2\364+%\277\206~\243\344\267\320\357\224\374\036\232\247d>\224\243$\027\312\207v5\316\022lkR,\227(b\264\233\321\221\006;\327\324\021h\2327\246\241\303f""\214\031.\222\\\036\327-\252\310=\350\203\276\375\036\246.7R,H\334I\3252\213\252a\213\334\rE\313h\177\250u\224\266E\316\356\337-\032\310\274_\202\333\267\016\213\271w\313\t\351\373o\242\241s\234\300CC\357n\372_%5\262+\201\220\303\036\201\340\367\376\323C\277J6?6\261\323t\236\262\345\204\304\274t\234dv4\231\325\273\240c\005\016\323T\353;\262\t\261r\341kB,\347\215\371\214\221Y'\305\3203H\353f0\364\320\266n\310\237Ta\367/`\305\366l9!\275\377m\344\025\215\342\272\261\276\261\353\331;\205\010\250\272[\241\321Z\327)b\315IRw\315\032\242a~\267\254\361\320a\262f\331X\376`|\370cW\333&\221E\246k\377nH*5\0365o\266\302p\243V\215\027,\216\264\033\022\326P0\374\017\314\016\254}\325Pgv\274\256\276\245\210\363O\2105\274\305@\326Y@\014[\021X\213}\250d\224\370>$\214\023\261\225\377B\311/\2417\224\274\t\251\224\250\241\014%\031l9H\362\2415J\326B\037(\371\020\032\246mw8\374\204\222'\341\247\341\356\207\3723\364\316\236\372D#\202\303\244\023\306\030\002D\320\037\0108\201Dl\225y#\217\035e\305X\341\026\3160\3656,\251\034\245d44N\311x\350\025%\257$\261\263\224\314\206\322\224\244C\213\224,J\203#FT\306\302\202\346\021JF\302\317)y\036~A\311\213\360[J\336\206\223\224$\245\301\361\216\222w\341\002%\205\360\032%k\341?(\371#\034\213P\233\221!J\206\"\317)y\036\231\244d2\362+%\277F~\243\344\267\310\357\224\374\036\231\247d>\222\243$\027\311G\254i\275\300\216\366\037\325\357BW\304\267\234\020\365\377\246\365\177\353\264R(\266\007\021\223\317(2\263\345\204\364w=\255\234ab\027\213S\022\017MQ2%\r\304\024%)\311\233%J\226$\213\376\240\344\217\320\237\241\177|\"\377$\033>$<\220g\224<\223\342&\034\002A\236p\010\204\324\t3V\370\005B\352\036\022\357\037\312\031\024\016\301\030%c\341\227\224\274\014'(I\204S\224\244\302s\224\314\205\027(Y\010\353\224\350\341\367\224\274\017\377I\311\237\341\0074!\017\"\303\224\014GF)\031\215LQ2\025\231\216\354\330Tt\314\322\262\214\325c\226\270\303\207\235\2343d\204F4\"\355\372\327\224\274\016%(I\204\336Q\362N\272F+\224\254\204\326)Y\227,xL\311cp\342\343\347\013[\007\310[4""\0261e\26056\210\323\322\201\023T\212i\023~\334KJ^Jb\205T\211\331[\240d!\264J\311*\304\211X,i\026~\334SJ\236\206\247(\231\n\377F\311o\322\201\023\3236O\311|8OI>\274B\311\212t\340\304\264\r\322\014\rF\236R\36242N\311x\344\005%/\"\257(y\025yK\311\333\310,%\263\221EJ\026#\331\217\324\247\366)\345\002\336A\237\nN\t?\3159\255\235\364\251pn\205nz\371\317O\362?\242]K\224\224B\033\224lH%\353\224\317.&\371?\241]\213\224\024#+\224\254D\326)Y\217\014\356!\211\331\363\204\222'{\236\356\261\344\340\007\026\030z\324\270\213\003\027.\007\026\304&\007\247\371\345\321\010.\034P\330\261H\247/\024h\355~v\356T_\324\206\352Gq:y\270\271\322\322\214\211i\326\002|d8\310P\020\\\223o\2571\205\272\230\241d&\224\014\355\330\362\303P\252\207Pp\n#\341\241A\034\211N\356f t\025\356\24616aL\340h\003\376>V\006\306\002\333\034\202\206X\006\037K,\264\343\335\216(\334\017\267f\232\371F;\362\034,\342\366\272\235\252\235\373\300\222\216\004\016=\367\342\256\334\005vT\211\275\027\223\226\334\rM\373\320_\2515H\014w-JG0PL\377\023J\236\310\2659M\311\2644\323\336\332\270z\216\"\0038\3439\r\307\204\317\273\005q\315\373^vY\365\006n\026~\314\274\333\206\341a\355\r:~\3079\344g\255[\010\313o9A\375\376\324\254\263k-\037GH7\342\327\245{f'm\r\207\303\303\010h-\030\277\242\007\204o\021\354\344\252\177\265{\202o\343H\340\034\356\343\221\037l\n\345\264_\210\214\323,\0149!\006b\371\213\371\027\313\377-%o\245\026\020\273\2130\353D \325\271\311\014\221r\035\222v\323\363\360Gs\345)q]\334\325\375HV\340\270\n|@\030\024\314\205&$\317\236\355\253\202\017b\253\022\313A\354Q\"\014\372j\347!\233\377\377\007\322\245\271y\002\307R\3038\313\232ew1\273\246|\000\307\245{p\3513\202S\364\023\270\3141\201\2206\256s\320\315\353\035\007h{w\306\260\276\035\357\2734\306'\350\371\374\316\242\257\326\030G:\204 \273\334\006\210\206\2470\016\357\303\262\032\301\025\273\035\014\372^u\005G\007\327q\202t\221\346\322\352\232L\3128\004\347\2651F\327\002\266\\0\033\213O\2123\254\265\235\007bo\341\002\312\227x\325\203^xqq\301<v\200\315\261al|\330\261a""\374/\\o:\017=\361\030jx?.\333\277fg\032S\273a\315\005\333\241\010\326!N\224\2603\2024\034*\255\221\267&\217C\304\362qzO\302\315\025f\366\233\235\257\"9\220\021\\\2358\275\263c>\347\354~\331J2\373\240\333c\276.W\300\377\030}]\236M\234b\207\301\017k\373\331\325\244\207\270i\214\223\337\217\324\243/X`\025\202\3007\334\340\2431\341\276\010U:\261\363\275^R\377\351\316\242\301\026\325\263\301\321\340.\355\262\377$\t;\230\3034V\371\200\230\303\375\255c\270\203\374\217\316!$m\315X\343\276\247\0206\261\236\235\307\233S\241]1pA\270\013tF{\212\037@r\347\n\275\317\355f$\357,\323\322\265\253\223\306dq\0221\014!\212B-\2118\2118\350\026jI\204K\222\224$]\326Z\3016\340\233t-\020\372\360t\353\021L\363-'\3106\342\343\354&\352n\267\336.\375\304op\035j\000l}\301\014\355Hs\007\213\372>\204\271T\037\304\201\360\200M\267\373XG\216\003\234.w\036I\327\257\320k}\273\241\351\266\355N\006\277\276\260\260k\346\374g\210\350\322\222\375\317\022\321\245\tx\234\031\032g\253\352n\254\263\307\264\262w\314\374\177\262\313~\272\017\207\253Z\257\341\017s\033\320\202\364\374g\272\354\322\354\224]\246w\266/\004v\333\345\216HBE\327\345\0177\212\306\340\024\213x\302b\200t\300IE\270\002\0331\327~\276\316\214pR\235\336i2\364\261\262\211\215\004^\362\2545\226\353tM\027o8\254SLf|\313\t\262\214;\243\2274\310],\217\363;R`\306iz\331\250\204\027 \212\315;\255\027\306$\230\300=DX\2460K\363;\016i\321d\336\025~\314\210\330\243>*\246p\0237\263\371\265\266\333\235o\335\374O\204\024:\232\266\365\257\033\277\342\272(\\\221qc\234\337\203\242\353T\225\276z/]\227\257\3644\372\350\222\037\335\311\273\304/\275\327\324\262jD\2425\325\347\315\241NW\374\272y}\310\210\234\257\356\264]\307\333Gmj\200\256QS6\312\357GW\377U\233\301A}?KC\365\276J\006\321\206\001\270w\343x\243\346\030]\355&dy\355\271g+\202k\314\024^\376\014\374Y\240\017!D\216\362\327\200p5\022L\335\240w\260\332\373\250\237\225Z\026\257\340\363/2\370V\273Y\331G\334\263U\243\227%\367\325?o\250\235\252\rTN\342^l\237\255\032Qw\252\036\305\033\026\035\252\375\314\336K\260W""\303\007\026\214\376\007t!1\336\251\342-z\323\247\332o\253Hs}\271>J\301\336\340j\367\331\255c\373\350~\250-\031?\376\273\371y\253\323\360\214\243\362-B\253\"^C4\256\0177\263\314i\355P\223\277gh\257y\247\321g\334\205V\242\367p:\021{\233^\256\250\332k\322[\225w\353\331f\307\031\374\211\275\247\025\267U\243\367\354\236\261w\241;\021\312\337\003Qm\365\360\236\211q\363I+\212\005\326\251\303;\354\035\014{E\372\214\306\033\274l\335\323\261C\376:\300\222\255\336\315z\334\030x\326\032e\007#\301\035\336e\257\n\330+\342\372.\004{\264\325\327\261C~W\332\276$pS\331\2705\332\312\322\253H\035:\274\307.M\333+\322B\375\263\221m\311\231hG.\260k\325j\365j\255\200\330r\214\245\307\352\361\377\007\223\232y\327";
    PyObject *data = __Pyx_DecompressString(cstring, 11978, 1);
    if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
    const char* const bytes = __Pyx_PyBytes_AsString(data);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
    #endif
    #else /* compression: none (41506 bytes) */
const char* const bytes = " {{\n\t{0}\n}}04x#06x0=#6x. A binary policy must be specified. (use e.g. policy.\n    A dictionary with a weak-referenced key and a default value.\n\n    This is a combination of WeakKeyDictionary and defaultdict\n    classes and has the interfaces of both, with the exception\n    of the constructor.\n\n    WeakKeyDefaultDict(default_factory, [dict])\n    A portcon protocol type.A range of IP ports.A range of Infiniband partition keys.A range of Xen IO memory rangesA range of Xen IO portsA single row of a Conditional expression truth table.An enumeration of MLS rule types.An enumeration of RBAC rule types.At least one of user, role, type_, or range_ must be specified.Attempting to locate current running policy.\n    Base class for policy enumerations.\n\n    Standard Enum behavior except for returning\n    the enum name for the default string representation\n    and basic string format.\n    Binary policy path: Bitmap overflow, bit Creating cat_val_to_struct.Creating level_val_to_struct.Current policy path: Enumeration of *bounds rule types.Enumeration of constraint types.Enumeration of default range values.Enumeration of default rule types.Enumeration of default values.Enumeration of file types in FileContexts.Enumeration of fs_use_* rule types.Enumeration of handle unknown settings.Enumeration of policy targets.Enumeration of types of TE rules.Error inserting into hash table.  Key already exists.Extended permission information is NULLGenfscon {g.fs} {g.path} object class {g.tclass.name} does not match a file object class. Dropping file type.Invalid policy: Invalid policy: Found a rule with no permissions: Invalid policy: Found a rule with no extended permissions: IoctlSet is deprecated, use XpermSet instead.Levels cannot be compared to level declarationsList[str]Memory address must be >= Memory address must be <= Negations in the type set; this is not implemented in SETools.Nodecon IP VersionNodecon with network None|None||None|NoneNote that Cython is deliberately"" stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.ObjClass | strOpening SELinux policy \"Partition keys must be >= Partition keys must be <= Port numbers must be >= Port numbers must be <= Potential policies: Rebuilding attributes.<SELinuxPolicy(\"SELinuxfs exists: Sepol version range: Setting permissive flags in type datums.Successfully opened SELinux policy \"Synthesizing missing attributes.The low mem addr must be smaller than the high mem addr: The low partition key must be <= the high partition key: The low port must be smaller than the high port: The low port must be <= the high port: Unable to locate an SELinux policy to load.Unknown AV rule type 0xUnknown extended permission: Unsupported default_range value: Unsupported default value:  } ==!=:.\"\" (,, ;-). - : /\n\t\n<, \"(\")> }; { }; [  ]:?!||&&)^--|{  } ();add_note alias {  alias  and is not in attribute -bbool -ccategory class common {0}\n{{\n\t{1}\n}}-ddataclasses.ClassVar[int]devicetreecon dict[str, bool]disable does not inherit a common.) does not match.enablef{ctx} is invalid: Context is incomplete.gcgenfscon|genfscon  has host bits set. Analyses may have unexpected results.ibendportcon|ibendportcon ibpkeycon|ibpkeycon inherits iomemcon ioportcon  is an attribute, thus cannot be permissive. is an attribute, thus does not have attributes. is an attribute, thus does not have aliases. is invalid:  is invalid: Range  is invalid: Role  is invalid: Type  is not  is not a type is not a valid Boolean is not a valid category) is not a valid category is not a valid category range) is not a valid class is not a valid common is not a valid level ( is not a valid level (category  is not a valid level (level parsing error) is not a valid range ( is not a valid role is not a valid sensitivity) is not a valid sensitivity is not a valid type is not a valid type attribute is not a valid user is not an attribute is not ass""ociated to role  is not associated to user  is not associated with sensitivity  is not dominated by isenabled-llevel  level netifcon|netifcon no default __reduce__ due to non-trivial __cinit__nodecon|nodecon  not in user * or ~ in the type set; this is not implemented in SETools. or sepolicy) Source policies are not supported.-ppcidevicecon pirqcon policycap portcon|portcon  range role  roles  rule is already expanded. rules do not have a default type. rules do not have a permission set. rules do not have an extended permission type. rules do not have file names rules do not have permissions.-s's allowed range self.bmap,self.node cannot be converted to a Python object for picklingself.curr,self.datum,self.node,self.table cannot be converted to a Python object for picklingself.curr,self.head cannot be converted to a Python object for picklingself.curr,self.head,self.ocon cannot be converted to a Python object for picklingself.curr,self.node,self.table cannot be converted to a Python object for picklingself.node,self.table cannot be converted to a Python object for picklingsensitivity setools.exceptionsetools/policyrep/boolcond.pxisetools/policyrep/bounds.pxisetools/policyrep/constraint.pxisetools/policyrep/context.pxisetools/policyrep/default.pxisetools/policyrep/filecontexts.pxisetools/policyrep/fscontext.pxisetools/policyrep/initsid.pxisetools/policyrep/mls.pxisetools/policyrep/mlsrule.pxisetools/policyrep/netcontext.pxisetools/policyrep/objclass.pxisetools/policyrep/object.pxisetools/policyrep/polcap.pxisetools/policyrep/rbacrule.pxisetools/policyrep/role.pxisetools/policyrep/rule.pxisetools/policyrep/selinuxpolicy.pxisetools/policyrep/terule.pxisetools/policyrep/typeattr.pxisetools/policyrep/user.pxisetools/policyrep/util.pxisetools/policyrep/xencontext.pxisid <stringsource>type  types  types { user AVRuleAVRuleXpermAVRuleXperm.__reduce_cython__AVRuleXperm.__setstate_cython__AVRuleXperm.expandAVRuleXperm.statementAVRule.__reduce_cython__AVRule.__setstate_cython__""AVRule.derive_expandedAVRule.expandAVRule.factory.<locals>.genexprAVRule.statementAnyConstraintAnyDefaultAnyRBACRuleAnyTERuleBaseConstraintBaseConstraint.__reduce_cython__BaseConstraint.__setstate_cython__BaseMLSLevelBaseMLSLevel.__reduce_cython__BaseMLSLevel.__setstate_cython__BaseMLSLevel.categoriesBaseTERuleBaseTERule.__reduce_cython__BaseTERule.__setstate_cython__BaseTERule.enabledBaseTypeBaseType.__reduce_cython__BaseType.__setstate_cython__BaseType.aliasesBaseType.attributesBaseType.expandBooleanBooleanHashtabIteratorBooleanHashtabIterator.__reduce_cython__BooleanHashtabIterator.__setstate_cython__Boolean.__reduce_cython__Boolean.__setstate_cython__Boolean.statementBoundsBoundsRuletypeBounds.__reduce_cython__Bounds.__setstate_cython__Bounds.statementCategoryCategoryEbitmapIteratorCategoryEbitmapIterator.__reduce_cython__CategoryEbitmapIterator.__setstate_cython__CategoryHashtabIteratorCategoryHashtabIterator.__reduce_cython__CategoryHashtabIterator.__setstate_cython__CategoryHashtabIterator.resetCategory.__reduce_cython__Category.__setstate_cython__Category.aliasesCategory.statementCommonCommonHashtabIteratorCommonHashtabIterator.__reduce_cython__CommonHashtabIterator.__setstate_cython__Common.__reduce_cython__Common.__setstate_cython__Common.statementConditionalConditionalExprIteratorConditionalExprIterator.__reduce_cython__ConditionalExprIterator.__setstate_cython__ConditionalExprIterator.resetConditionalIteratorConditionalIterator.__reduce_cython__ConditionalIterator.__setstate_cython__ConditionalIterator.resetConditionalOperatorConditionalOperator.__reduce_cython__ConditionalOperator.__setstate_cython__ConditionalOperator.<lambda>ConditionalOperator.statementConditionalTERuleIteratorConditionalTERuleIterator.__reduce_cython__ConditionalTERuleIterator.__setstate_cython__ConditionalTERuleIterator.resetConditionalTERuleIterator.ruletype_countConditional.__reduce_cython__Conditional.__setstate_cython__Conditional.evaluateConditional.expressionConditional.false""_rulesConditional.statementConditional.true_rulesConditional.truth_tableConstraintConstraintExprIteratorConstraintExprIterator.__reduce_cython__ConstraintExprIterator.__setstate_cython__ConstraintExprIterator.resetConstraintExprNodeConstraintExprNode.__reduce_cython__ConstraintExprNode.__setstate_cython__ConstraintExprNode.factory.<locals>.genexprConstraintExprNode.statementConstraintExpressionConstraintExpression.__reduce_cython__ConstraintExpression.__setstate_cython__ConstraintExpression.infixConstraintExpression.statementConstraintIteratorConstraintIterator.__reduce_cython__ConstraintIterator.__setstate_cython__ConstraintIterator.resetConstraintRuletypeConstraintUseErrorConstraint.__reduce_cython__Constraint.__setstate_cython__Constraint.statementContextContext.__reduce_cython__Context.__setstate_cython__Context.statementCounterDefaultDefaultRangeDefaultRangeValueDefaultRangeValue.from_default_rangeDefaultRange.__reduce_cython__DefaultRange.__setstate_cython__DefaultRange.statementDefaultRuletypeDefaultValueDefaultValue.from_default_rangeDefault.__reduce_cython__Default.__setstate_cython__Default.statementDevicetreeconDevicetreeconIteratorDevicetreeconIterator.__reduce_cython__DevicetreeconIterator.__setstate_cython__Devicetreecon.__reduce_cython__Devicetreecon.__setstate_cython__Devicetreecon.statementEbitmapIteratorEbitmapIterator.__reduce_cython__EbitmapIterator.__setstate_cython__EbitmapIterator.resetEnumFSUseFSUseIteratorFSUseIterator.__reduce_cython__FSUseIterator.__setstate_cython__FSUseRuletypeFSUse.__reduce_cython__FSUse.__setstate_cython__FSUse.statementFalseFileContextsFileContextsFiletypeFileContexts.__reduce_cython__FileContexts.__setstate_cython__FileContexts.lookupFileNameTERuleFileNameTERuleIteratorFileNameTERuleIterator.__reduce_cython__FileNameTERuleIterator.__setstate_cython__FileNameTERuleIterator._next_stypeFileNameTERuleIterator.resetFileNameTERule.__reduce_cython__FileNameTERule.__setstate_cython__FileNameTERule.expandFileNameTERule.statem""entGenfsFiletypeGenfsFiletype.__reduce_cython__GenfsFiletype.__setstate_cython__GenfsFiletype.from_classGenfsconGenfsconIteratorGenfsconIterator.__reduce_cython__GenfsconIterator.__setstate_cython__GenfsconOcontextIteratorGenfsconOcontextIterator.__reduce_cython__GenfsconOcontextIterator.__setstate_cython__Genfscon.__reduce_cython__Genfscon.__setstate_cython__Genfscon.statementHandleUnknownHashtabIteratorHashtabIterator.__reduce_cython__HashtabIterator.__setstate_cython__HashtabIterator.resetIPv6AddressIbendportconIbendportconIteratorIbendportconIterator.__reduce_cython__IbendportconIterator.__setstate_cython__Ibendportcon.__reduce_cython__Ibendportcon.__setstate_cython__Ibendportcon.statementIbpkeyconIbpkeyconIteratorIbpkeyconIterator.__reduce_cython__IbpkeyconIterator.__setstate_cython__IbpkeyconRangeIbpkeyconRange.__post_init__IbpkeyconRange.__str__Ibpkeycon.__reduce_cython__Ibpkeycon.__setstate_cython__Ibpkeycon.statementInitialSIDInitialSIDIteratorInitialSIDIterator.__reduce_cython__InitialSIDIterator.__setstate_cython__InitialSID.__reduce_cython__InitialSID.__setstate_cython__InitialSID.statementInvalidBooleanInvalidCategoryInvalidClassInvalidCommonInvalidContextInvalidLevelInvalidPolicyInvalidRangeInvalidRoleInvalidSensitivityInvalidSymbolInvalidTypeInvalidUserIoctlSetIoctlSet.__reduce_cython__IoctlSet.__setstate_cython__IomemconIomemconIteratorIomemconIterator.__reduce_cython__IomemconIterator.__setstate_cython__IomemconRangeIomemconRange.__post_init__IomemconRange.__str__Iomemcon.__reduce_cython__Iomemcon.__setstate_cython__Iomemcon.statementIoportconIoportconIteratorIoportconIterator.__reduce_cython__IoportconIterator.__setstate_cython__IoportconRangeIoportconRange.__post_init__IoportconRange.__str__Ioportcon.__reduce_cython__Ioportcon.__setstate_cython__Ioportcon.statementLevelLevelDeclLevelDeclHashtabIteratorLevelDeclHashtabIterator.__reduce_cython__LevelDeclHashtabIterator.__setstate_cython__LevelDeclHashtabIterator.resetLevelDecl.__reduce_cython__Level""Decl.__setstate_cython__LevelDecl.statementLevel.__reduce_cython__Level.__setstate_cython__Level.factory_from_string.<locals>.genexprLevel.statementLowLevelPolicyErrorMAXMINMLSDisabledMLSRuleMLSRuleIteratorMLSRuleIterator.__reduce_cython__MLSRuleIterator.__setstate_cython__MLSRule.__reduce_cython__MLSRule.__setstate_cython__MLSRule.expandMLSRule.statementMLSRuletypeNetifconNetifconIteratorNetifconIterator.__reduce_cython__NetifconIterator.__setstate_cython__Netifcon.__reduce_cython__Netifcon.__setstate_cython__Netifcon.statementNoCommonNoFileContextsMatchNoStatementNodeconNodeconIPVersionNodeconIteratorNodeconIterator.__reduce_cython__NodeconIterator.__setstate_cython__Nodecon.__reduce_cython__Nodecon.__setstate_cython__Nodecon.statementObjClassObjClassHashtabIteratorObjClassHashtabIterator.__reduce_cython__ObjClassHashtabIterator.__setstate_cython__ObjClass.__reduce_cython__ObjClass.__setstate_cython__ObjClass.constraintsObjClass.defaultsObjClass.statementObjClass.validatetransOcontextOcontextIteratorOcontextIterator.__reduce_cython__OcontextIterator.__setstate_cython__Ocontext.__reduce_cython__Ocontext.__setstate_cython__PcideviceconPcideviceconIteratorPcideviceconIterator.__reduce_cython__PcideviceconIterator.__setstate_cython__Pcidevicecon.__reduce_cython__Pcidevicecon.__setstate_cython__Pcidevicecon.statementPermissionVectorIteratorPermissionVectorIterator.__reduce_cython__PermissionVectorIterator.__setstate_cython__PermissionVectorIterator.resetPirqconPirqconIteratorPirqconIterator.__reduce_cython__PirqconIterator.__setstate_cython__Pirqcon.__reduce_cython__Pirqcon.__setstate_cython__Pirqcon.statementPolicyCapabilityPolicyCapabilityIteratorPolicyCapabilityIterator.__reduce_cython__PolicyCapabilityIterator.__setstate_cython__PolicyCapability.__reduce_cython__PolicyCapability.__setstate_cython__PolicyCapability.statementPolicyEnumPolicyEnum.__eq__PolicyEnum.__format__PolicyEnum.__hash__PolicyEnum.__str__PolicyEnum.lookupPolicyIteratorPolicyIterator.__reduce_cyth""on__PolicyIterator.__setstate_cython__PolicyIterator.resetPolicyObjectPolicyObject.__copy__PolicyObject.__deepcopy__PolicyObject.__reduce_cython__PolicyObject.__setstate_cython__PolicyObject.statementPolicyRulePolicyRule.__reduce_cython__PolicyRule.__setstate_cython__PolicyRule.enabledPolicyRule.expandPolicySymbolPolicySymbol.__reduce_cython__PolicySymbol.__setstate_cython__PolicySymbol.expandPolicyTargetPortconPortconIteratorPortconIterator.__reduce_cython__PortconIterator.__setstate_cython__PortconProtocolPortconRangePortconRange.__post_init__PortconRange.__str__Portcon.__reduce_cython__Portcon.__setstate_cython__Portcon.statementPyErr_NoMemoryPyErr_SetFromErrno__Pyx_PyDict_NextRefRBACRuletypeRangeRange.__reduce_cython__Range.__setstate_cython__Range.domRange.dombyRange.statementRoleRoleAllowRoleAllowIteratorRoleAllowIterator.__reduce_cython__RoleAllowIterator.__setstate_cython__RoleAllowIterator.resetRoleAllow.__reduce_cython__RoleAllow.__setstate_cython__RoleAllow.expandRoleAllow.statementRoleEbitmapIteratorRoleEbitmapIterator.__reduce_cython__RoleEbitmapIterator.__setstate_cython__RoleHashtabIteratorRoleHashtabIterator.__reduce_cython__RoleHashtabIterator.__setstate_cython__RoleTransitionRoleTransitionIteratorRoleTransitionIterator.__reduce_cython__RoleTransitionIterator.__setstate_cython__RoleTransitionIterator.resetRoleTransition.__reduce_cython__RoleTransition.__setstate_cython__RoleTransition.expandRoleTransition.statementRole.__reduce_cython__Role.__setstate_cython__Role.statementRole.typesRuleNotConditionalRuleUseErrorSELINUX_SIDNAMESSELinuxPolicySELinuxPolicy.__copy__SELinuxPolicy.__deepcopy__SELinuxPolicy.__get__.<locals>.genexprSELinuxPolicy.__reduce_cython__SELinuxPolicy.__setstate_cython__SELinuxPolicy._cache_constraint_counts.<locals>.genexprSELinuxPolicy.boolsSELinuxPolicy.boundsSELinuxPolicy.categoriesSELinuxPolicy.classesSELinuxPolicy.commonsSELinuxPolicy.conditionalsSELinuxPolicy.constraintsSELinuxPolicy.defaultsSELinuxPolicy.devicetreeconsSELin""uxPolicy.fs_usesSELinuxPolicy.genfsconsSELinuxPolicy.ibendportconsSELinuxPolicy.ibpkeyconsSELinuxPolicy.initialsidsSELinuxPolicy.iomemconsSELinuxPolicy.ioportconsSELinuxPolicy.levelsSELinuxPolicy.lookup_booleanSELinuxPolicy.lookup_categorySELinuxPolicy.lookup_classSELinuxPolicy.lookup_commonSELinuxPolicy.lookup_contextSELinuxPolicy.lookup_levelSELinuxPolicy.lookup_rangeSELinuxPolicy.lookup_roleSELinuxPolicy.lookup_sensitivitySELinuxPolicy.lookup_typeSELinuxPolicy.lookup_type_or_attrSELinuxPolicy.lookup_typeattrSELinuxPolicy.lookup_userSELinuxPolicy.mlsrulesSELinuxPolicy.netifconsSELinuxPolicy.nodeconsSELinuxPolicy.pcideviceconsSELinuxPolicy.pirqconsSELinuxPolicy.polcapsSELinuxPolicy.portconsSELinuxPolicy.rbacrulesSELinuxPolicy.rolesSELinuxPolicy.sensitivitiesSELinuxPolicy.terulesSELinuxPolicy.typeattributesSELinuxPolicy.typesSELinuxPolicy.usersSensitivitySensitivityHashtabIteratorSensitivityHashtabIterator.__reduce_cython__SensitivityHashtabIterator.__setstate_cython__SensitivityHashtabIterator.resetSensitivity.__reduce_cython__Sensitivity.__setstate_cython__Sensitivity.aliasesSensitivity.level_declSensitivity.statementStackObjSymbolUseErrorTERuleTERuleIteratorTERuleIterator.__reduce_cython__TERuleIterator.__setstate_cython__TERuleIterator.resetTERuleIterator.ruletype_countTERuleNoFilenameTERule.__reduce_cython__TERule.__setstate_cython__TERule.expandTERule.statementTERuletypeTrueTruthTableRowTypeTypeAttributeTypeAttributeEbitmapIteratorTypeAttributeEbitmapIterator.__reduce_cython__TypeAttributeEbitmapIterator.__setstate_cython__TypeAttributeHashtabIteratorTypeAttributeHashtabIterator.__reduce_cython__TypeAttributeHashtabIterator.__setstate_cython__TypeAttributeHashtabIterator.resetTypeAttribute.__reduce_cython__TypeAttribute.__setstate_cython__TypeAttribute.aliasesTypeAttribute.attributesTypeAttribute.expandTypeAttribute.statementTypeEbitmapIteratorTypeEbitmapIterator.__reduce_cython__TypeEbitmapIterator.__setstate_cython__TypeHashtabIteratorTypeHashtabIterator.__r""educe_cython__TypeHashtabIterator.__setstate_cython__TypeHashtabIterator.resetTypeOrAttrTypeOrAttributeEbitmapIteratorTypeOrAttributeEbitmapIterator.__reduce_cython__TypeOrAttributeEbitmapIterator.__setstate_cython__TypeVarType.__reduce_cython__Type.__setstate_cython__Type.aliasesType.attributesType.expandType.statementTypeboundsIteratorTypeboundsIterator.__reduce_cython__TypeboundsIterator.__setstate_cython__TypeboundsIterator.resetUnionUserUserEbitmapIteratorUserEbitmapIterator.__reduce_cython__UserEbitmapIterator.__setstate_cython__UserHashtabIteratorUserHashtabIterator.__reduce_cython__UserHashtabIterator.__setstate_cython__User.__reduce_cython__User.__setstate_cython__User.factory.<locals>.genexprUser.statementValidatetransValidatetransIteratorValidatetransIterator.__reduce_cython__ValidatetransIterator.__setstate_cython__Validatetrans.__reduce_cython__Validatetrans.__setstate_cython__Validatetrans.statementWeakKeyDefaultDictWeakKeyDefaultDict.__getitem__WeakKeyDefaultDict.__init__WeakKeyDefaultDict.__missing__WeakKeyDictionaryXEN_SIDNAMESXpermSetXpermSet.__format__XpermSet.__reduce_cython__XpermSet.__setstate_cython__XpermSet.ranges*__aaaliasesallowallowxpermand__annotations__anyany_socketargsasyncio.coroutinesattributesauditallowauditallowxpermb_bblk_fileboolbool_valuesboolsboundboundsbucketccategorieschainchildchr_file__class____class_getitem__classescline_in_tracebackcloseclscollectionscommoncommons_cond_expr_val_to_detailsconditionalconditional_blockconditionalsconstrainconstraints__copy__countctxcurrddataclassdataclassesdatumdccpdebug__deepcopy__defaultdefault_factorydefault_mapdefault_rangedefault_roledefault_typedefault_userdefaultsdefaultvaluedenyderefderive_expandedderive_expanded.<locals>.genexprdevicedevicetreeconsdevnull__dict___dictdir__doc__domdom0domDMdomUdombydomiodomxendontauditdontauditxpermeenabledenum__eq__eqerrnoevaluateexceptionexpandexpr_node_expr_op_to_text_expr_type_to_textexpressionfalse_rulesfc_pathfieldfifo_filefilefile_labelsfilety""pe_filetype_to_text__format__format__format__.<locals>.<lambda>from_classfrom_default_rangefrozenfsfs_use_taskfs_use_transfs_use_xattrfs_uses__func__genexprgenfsconsgetgetLogger__getitem____getstate__glblubgroupgroupbyh1h2__hash__highiibendportconsibpkeyconsicmp_socketidigmp_packetincompinfixinfix.<locals>.StackObjinfix.<locals>.<lambda>info__init__initinitialsidsintioctliomemiomemconsioportioportconsip_networkipaddressipv4ipv6irq_is_coroutineispermissiveitemsitertoolsjkkernelkeykmodkwargsl1l2<lambda>__len__.<locals>.genexprlevellevel_decllevelslibsepollnk_filelogginglookuplookup_booleanlookup_boolean_name_sublookup_categorylookup_classlookup_commonlookup_contextlookup_levellookup_rangelookup_rolelookup_sensitivitylookup_typelookup_type_or_attrlookup_typeattrlookup_userlowlow_highlower__main__map_max_precedencemaxsplitmemo__metaclass____missing__mls_levelmls_rangemlsconstrainmlsrulesmlsvalidatetrans__module____mro_entries__nname__name___namenamesnetifnetifconsnetmsgneverallowneverallowxperm__new__new_name__next__next_next_stypenlmsgnodenodeconsnotobject_ropop_precedenceoperandoperand1operand1_infooperand2operand2_infooperand_info_operandsoperatorororderotherpparentpathpcideviceconspermspirqconspolcapspolicypolicyfilepopportportcons__post_init__precedence_precedence__prepare__product__pyx_checksum__pyx_result__pyx_state__pyx_type__pyx_unpickle_AVRule__pyx_unpickle_AVRuleXperm__pyx_unpickle_BaseConstraint__pyx_unpickle_BaseMLSLevel__pyx_unpickle_BaseTERule__pyx_unpickle_BaseType__pyx_unpickle_Boolean__pyx_unpickle_Bounds__pyx_unpickle_Category__pyx_unpickle_Common__pyx_unpickle_Conditional__pyx_unpickle_ConditionalOperator__pyx_unpickle_Constraint__pyx_unpickle_ConstraintExprNode__pyx_unpickle_ConstraintExpression__pyx_unpickle_Context__pyx_unpickle_Default__pyx_unpickle_DefaultRange__pyx_unpickle_Devicetreecon__pyx_unpickle_FSUse__pyx_unpickle_FileNameTERule__pyx_unpickle_GenfsFiletype__pyx_unpickle_Genfscon__pyx_unpickle_Ibendportcon__pyx_unpickle_Ibpkeycon__pyx_unp""ickle_InitialSID__pyx_unpickle_IoctlSet__pyx_unpickle_Iomemcon__pyx_unpickle_Ioportcon__pyx_unpickle_Level__pyx_unpickle_LevelDecl__pyx_unpickle_MLSRule__pyx_unpickle_Netifcon__pyx_unpickle_Nodecon__pyx_unpickle_ObjClass__pyx_unpickle_Ocontext__pyx_unpickle_Pcidevicecon__pyx_unpickle_PermissionVectorIterator__pyx_unpickle_Pirqcon__pyx_unpickle_PolicyCapability__pyx_unpickle_PolicyIterator__pyx_unpickle_PolicyObject__pyx_unpickle_PolicyRule__pyx_unpickle_PolicySymbol__pyx_unpickle_Portcon__pyx_unpickle_Range__pyx_unpickle_Role__pyx_unpickle_RoleAllow__pyx_unpickle_RoleTransition__pyx_unpickle_Sensitivity__pyx_unpickle_TERule__pyx_unpickle_Type__pyx_unpickle_TypeAttribute__pyx_unpickle_User__pyx_unpickle_Validatetrans__pyx_unpickle_XpermSet__pyx_vtable____qualname__rr1r2r3range_range_transitionrangesranges.<locals>.genexprranges.<locals>.<lambda>rbacrules__reduce____reduce_cython____reduce_ex__rejectrepeatreplacereprresetresultreturn_role_symsrole_transitionrolesrowruletyperuletype_counts_sclass_to_statscmp_packetsctpsecurityselfselinuxsendsensitivitiessensitivity__set_name__setdefault__setitem__setools.policyrep__setstate____setstate_cython__shortlistsock_filesortedsourcespecsplitstackstatestatementstatement.<locals>.genexprstmt__str__str__str__.<locals>.genexpr__str__.<locals>.<lambda>strictstripsumsuper_sym_to_textsymbolsymbol_typesysctlsysctl_devsysctl_fssysctl_kernelsysctl_modprobesysctl_netsysctl_net_unixsysctl_vmtt1t2t3targettclasstcptcp_socketterules__test__throwtrue_rulestruth_listtruth_tabletruth_table.<locals>.genexprtype_changetype_member_type_symstype_transitiontypeattributestypeboundstypestypinguu1u2u3udpunaryundefinedunlabeledupdateuse_setstate_user_symsusersvalidatetransvalue_valuevalueswarnwarningwarningsweakrefwith_netmaskxxenxperm_typey\200\001\330\0040\260\001\260\026\260q\2201\200\001\330\004+\2501\250F\260!\200\001\330\004#\2401\240F\250!\200\001\330\0041\260\021\260&\270\001\200\001\360\020\000\t\036\320\0351\260\021\260!\330\010\027\220q\340""\004\007\200v\210S\220\001\330\010\t\340\004\005\330\010\023\2201\340\010\014\210A\210Q\340\004\013\2101\200\001\330\0042\260!\2606\270\021\240\032\2504\250q\200\001\330\004*\250!\2506\260\021\200\001\330\004\"\240!\2406\250\021\200\001\330\0046\260a\260v\270Q\2509\260A\260Q\200A\320\004\033\230?\320*A\320AU\320UV\360\006\000\t\023\320\022%\240Q\240d\250)\2601\260E\270\026\270x\300x\310r\320QR\330\014\017\210v\220S\230\001\330\020\026\320\026)\250\021\250%\250y\270\001\270\021\340\020\"\240!\2401\340\010\017\210t\2207\230/\250\021\250(\260$\260m\3001\200\001\330\004$\240A\240V\2501\200\001\330\004,\250A\250V\2601\200A\330\010\017\210|\2301\230D\240\001\200A\330\010\017\210|\2301\230D\320 0\260\001\260\024\260X\270Q\270d\300!\200A\360\n\000\t\021\220\003\2201\220D\230\001\340\010\017\210{\230!\2304\230q\330\010\013\2106\220\022\2201\330\014\024\220L\240\001\240\023\240E\250\021\250$\250a\330\r\023\2203\220a\330\014\024\220I\230Q\230d\240)\2501\250A\330\010\020\220\001\330\010\017\210q\200A\330\010\017\210|\2301\230D\240\010\250\001\250\024\250Q\200A\360\n\000\t\021\220\003\2201\220D\230\001\340\010\017\210~\230Q\230d\240!\330\010\013\2106\220\022\2201\330\014\024\220L\240\001\240\023\240E\250\021\250$\250a\330\r\023\2203\220a\330\014\024\220I\230Q\230d\240)\2501\250A\330\010\020\220\001\330\010\017\210q\200A\340\010\034\320\0341\260\021\330\0342\260!\330\0346\260a\330\0341\260\021\330\0342\260!\330\0346\260a\330\034-\250Q\340\010\t\330\014\024\220K\230q\240\001\330\014\023\2208\2306\240\023\240J\250c\260\021\260!\330\010\017\210|\2301\330\014\022\320\022%\240Q\320&I\310\021\310*\320TU\230A\240A\200A\330 3\2601\340\010\017\210z\230\032\2401\240H\250J\260f\270A\330\010\017\210s\220!\2203\320\026&\240a\240q\200A\360\010\000\t\n\330\014\023\2203\220a\220q\330\017\020\330\014\023\2203\220a\220q\200A\330\010\013\2103\210a\210t\2208\2302\230Q\330\014\024\220E\230\021\230#\230U\240'\250\021\250$\250a\360\006\000\r\025\220D\230\001\230\024\230W\240A\240Q\340\010\017\210r\220""\021\220$\220k\240\021\240$\240i\250q\260\010\270\001\270\024\270Q\200A\330\010\013\2104\320\017 \240\003\2401\330\014\022\220(\230!\2301\340\010\027\220t\320\033+\2501\330\010\014\210L\230\001\230\025\230a\330\010\017\210q\200A\360\030\000\t\014\2104\210~\230S\240\001\330\014\023\2201\340\010\013\2104\210}\230I\240S\250\001\330\014\023\2204\220q\340\014\023\2204\220t\2301\200A\330\010\013\2104\210q\330\014\023\2202\220Q\220d\230+\240Q\240d\250)\2601\260D\270\n\300!\3004\300q\340\014\023\2202\220Q\220d\230+\240Q\240d\250)\2601\260D\270\001\200A\330\010\013\2104\210q\330\014\023\2204\220q\340\014\023\2205\230\001\230\034\240U\250+\260Q\260a\200A\330\010\013\2104\210t\2201\330\014\020\220\017\230r\240\021\240$\240k\260\021\260$\260i\270q\300\004\300I\310Q\310d\320RS\360\006\000\r\025\220D\230\001\330\014\017\210s\220!\2207\230\"\230A\330\020\024\320\024$\240E\250\021\250#\250U\260'\270\021\270!\360\006\000\021\025\320\024$\240B\240a\240t\2501\250F\260!\2601\340\014\r\330\020\024\320\024$\240E\250\021\250$\320.>\270a\270t\3001\330\023\024\360\006\000\t\020\210t\2201\200A\330\010\013\2104\210t\2201\330\014\020\220\017\230r\240\021\240$\240k\260\021\260$\260i\270q\300\004\300I\310Q\310d\320R[\320[\\\320\\`\320`a\360\006\000\r\025\220D\230\001\330\014\017\210u\220G\2303\230b\240\001\330\020\024\320\024$\240E\250\021\250!\340\020\024\320\024$\240B\240a\240q\340\010\017\210t\2201\200A\330\010\013\2104\210t\2201\330\014\020\220\017\230r\240\021\240$\240k\260\021\260$\260i\270q\300\004\300I\310Q\310d\320R[\320[\\\320\\`\320`a\340\014\r\330\020\024\320\024$\240E\250\021\250$\320.>\270a\270t\3001\330\023\024\360\006\000\t\020\210t\2201\200A\330\010\017\210{\230!\2304\230u\240A\240T\250\027\260\001\260\024\260[\300\001\300\024\300Q\200A\330\010\013\2104\210u\220B\220l\240%\240s\250$\250f\260B\260l\300!\330\014\022\220*\230A\320\0357\260q\270\014\300G\3101\310A\340\010\013\2104\210u\220B\220l\240%\240s\250$\250f\260B\260l\300!\330\014\022\220*\230A\320\0357\260q\270\014\300G\3101""\310A\340\010\013\2104\210u\220B\220d\230!\330\014\022\220*\230A\320\035F\300a\300q\200A\330\010\013\2104\210u\220B\220m\2405\250\003\2504\250v\260R\260}\300A\330\014\022\220*\230A\320\0359\270\021\270-\300t\3109\320TU\320UV\340\010\013\2104\210u\220B\220m\2405\250\003\2504\250v\260R\260}\300A\330\014\022\220*\230A\320\0359\270\021\270-\300t\3109\320TU\320UV\340\010\013\2104\210u\220B\220d\230!\330\014\022\220*\230A\320\035X\320XY\320YZ\200A\330\010\013\2104\210u\220B\220n\240E\250\023\250D\260\006\260b\270\016\300a\330\014\022\220*\230A\320\0357\260q\270\016\300d\310)\320ST\320TU\340\010\013\2104\210u\220B\220n\240E\250\023\250D\260\006\260b\270\016\300a\330\014\022\220*\230B\320\0368\270\001\270\036\300t\3109\320TU\320UV\340\010\013\2104\210u\220B\220d\230!\330\014\022\220*\230A\320\035P\320PQ\320QR\200A\330\010\013\2104\210u\220B\220n\240E\250\023\250D\260\006\260b\270\016\300a\330\014\022\220*\230A\320\0359\270\021\270.\310\004\310I\320UV\320VW\340\010\013\2104\210u\220B\220n\240E\250\023\250D\260\006\260b\270\016\300a\330\014\022\220*\230A\320\0359\270\021\270.\310\004\310I\320UV\320VW\340\010\013\2104\210u\220B\220d\230!\330\014\022\220*\230A\320\035X\320XY\320YZ\200A\330\010\013\2104\210u\220C\220t\2301\330\014\023\2203\220a\220t\2301\340\014\023\2202\220Q\220d\230&\240\001\240\024\240Q\200A\330\010\013\2104\210u\220C\220t\2301\330\014\025\220Q\220d\230$\230a\340\014\023\2202\220Q\220d\230$\230h\240a\240t\2505\260\001\200A\330\010\017\210{\230!\2304\230w\240a\240t\2501\200A\330\010\017\210{\230!\2304\230x\240q\250\004\250J\260a\260t\2701\200A\360\006\000\t\014\2104\210x\220s\230!\330\014\020\220\n\230!\340\014\r\330\020\027\220q\330\020\027\220q\330\020\026\220a\330\020\026\220a\330\020\026\220a\330\020\027\220q\330\020\031\230\021\330\020\032\230!\340\014\036\230a\340\014\030\230\001\230\026\230v\240Q\330\031\037\230v\240Q\330\031\037\230v\240Q\330\031\037\230q\330\031\037\230q\360\016\000\r\025\220A\340\014\r\210[\230\n\240!\2405\250\007\250s\260'\270\027""\300\001\330\014\r\330\020\034\230A\330\020\034\230A\340\014\020\220\006\220d\230!\330\020\023\220:\230Q\230d\240+\250S\260\003\2603\260a\340\024\031\230\027\240\001\240\030\250\021\320*;\2701\360\006\000\025%\240K\250q\260\001\330\024\027\220s\230#\230Q\340\030#\2401\330\030'\240u\250D\260\001\330\030\033\230<\240|\2602\260Q\330\034 \240\001\240\032\2505\260\014\270M\310\021\340\034 \240\001\240\032\250<\260q\360\006\000\031)\250\005\250T\260\021\330\030(\250\005\250T\260\021\330\030#\2401\340\030\033\230=\250\014\260B\260a\330\034'\240q\250\005\250]\270-\300q\340\034'\240q\250\r\260Q\340\030\033\230=\250\014\260B\260a\330\034'\240q\250\005\250]\270-\300q\340\034'\240q\250\r\260Q\340\030\034\230I\240R\240q\250\n\260\"\260A\340\024\031\230\027\240\001\240\030\250\021\250/\270\021\340\014\020\220\n\230,\240a\240s\250!\320+B\300!\340\010\017\210t\2201\200A\360\006\000\t\014\2104\210x\220w\230a\330\014\022\220,\230a\230r\240\021\240$\240a\340\010\013\2107\220'\230\024\230X\240T\250\027\260\007\260t\2701\330\014\022\220,\230a\230r\240\021\240/\260\021\260$\3206M\310Q\310d\320RS\330\010\013\2107\220'\230\024\230X\240T\250\027\260\007\260t\2701\330\014\022\220,\230a\230r\240\021\240/\260\021\260$\3206M\310Q\310d\320RS\360\010\000\t\r\210F\220(\230!\2301\330\010\t\210\032\2204\220q\330\010\t\210\027\220\004\220A\330\010\t\210\034\220T\230\021\330\010\t\210\032\2201\330\010\t\210\032\2201\330\010\t\210\032\2204\220q\330\010\t\210\031\220)\2301\230A\330\010\t\320\t\031\230\024\230Q\330\010\t\320\t\037\230t\2401\330\010\t\210\032\2201\330\010\017\210q\260A\330,5\260V\2704\270q\300\010\310\002\310$\310a\310q\200A\330\010\t\330\014\023\2205\230\002\230,\240a\240q\330\017\020\330\014\023\2204\220|\2401\240A\200A\340\010\026\320\026*\250!\2506\260\021\200A\340\010\"\240(\250!\2506\260\024\260W\270B\270a\200A\340\010\"\240(\250!\2506\260\021\260$\260g\270R\270w\300f\310K\320WX\200A\340\010\034\320\0346\260a\330\0347\260q\330\034;\2701\330\0346\260a\330\0347\260q\330\034;\2701\330""\0342\260!\340\010\t\330\014\023\2203\220a\220{\240!\2401\330\010\017\210|\2301\330\014\022\320\022%\240Q\320&C\3001\300J\310a\200A\340\010#\2408\2501\250A\330,0\260\007\260r\270\032\3006\310\021\200A\340\010+\2508\2601\260F\270!\2704\270w\300b\310\007\310v\320U`\320`a\200A\340\010#\2408\2501\250F\260$\260g\270R\270z\310\026\310q\200A\360\020\000\t\021\220\013\2308\2401\340\010\017\210t\2201\330\010\016\210e\2203\220a\330\014\021\220\021\220$\220e\2304\230{\250\"\250F\3202E\300Q\330\014\023\2204\220q\340\010\017\210q\200A\340\010\014\210A\210R\210q\220\t\230\021\330\010\017\210q\200A\340\010+\320+B\300$\300a\330\010\013\2104\210|\2303\230a\330\014\020\320\020'\240x\250q\260\004\260I\270Q\340\010\017\210t\2201\200A\340\010+\320+B\300$\300a\330\010\013\2104\210~\230S\240\001\330\014\020\320\020 \240\004\320$7\260x\270q\300\004\300I\310Q\330@F\300a\340\010\017\210t\2201\220D\230\001\200A\340\010+\320+B\300$\300a\330\010\013\2104\320\017\037\230s\240!\330\014\020\320\020\"\240$\320&<\270H\300A\300T\310\031\320RS\330EK\3101\340\010\017\210t\2201\220D\230\001\200A\340\010\024\220D\230\001\330\010\020\220\003\2201\220A\330\010\017\210w\220a\220t\2301\330\010\013\2106\220\023\220A\330\014\023\2207\230!\2304\230q\330\010\013\2106\220\023\220A\330\014\023\2207\230!\2304\230}\250A\250U\260!\2601\340\010\017\210w\220a\220t\320\033+\2501\250C\250u\260G\2701\270A\200A\340\010\014\210E\220\024\220V\2301\330\014\017\210r\220\023\220A\330\020\027\220q\340\010\016\210k\230\021\230\"\230A\230Q\200A\340\010\014\210E\220\024\220V\2301\330\014\017\210r\220\023\220A\330\020\027\220q\340\010\016\210n\230A\230R\230q\240\001\200A\340\010\014\210E\220\024\220_\240A\330\014\017\210r\220\023\220A\330\020\027\220q\340\010\016\210k\230\021\230\"\230A\230Q\200\001\360\010\000\005\r\210A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017""\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\r\210A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\017.\250d\260!\2607\270+\300W\310A\340\010\017\320\017.\250d\260!\2607\270+\300Q\200A\340\010!\240\030\250\021\250&\260\004\260G\2702\270Z\300v\310Q\200A\340\010\014\210G\2204\220x\230q\330\014\017\210t\2203\220a\330\020\027\220q\340\010\016\210l\230!\2302\230Q\230a\200A\340\010$\240H\250A\250Q\330-1\260\027\270\002\270*\300F\310!\200A\340\010$\240H\250A\250V\2601\260D\270\007\270r\300\027\310\006\310m\320[\\\200A\340\010\034\230H\240A\240V\2504\250w\260b\270\n\300&\310\001\200A\340\010\014\210H\220A\330\010\016\210d\220&\230\002\230$\230j\250\004\250D\260\004\260H\270C\270r\300\023\300D\310\001\330\014\020\220\t\230\021\200A\340\010\014\210H\220D\230\001\200A\340\010\014\210H\220D\230\006\230a\230r\240\027\250\001\250\021\360\006\000\t\014\2104\210v\220S\230\001\330\014\020\220\013\2301\200A\340\010\014\210H\220D\230\006\230g\240Q\240a\360\006\000\t\014\2104\210v\220S\230\001\330\014\020\220\013\2301\200A\340\010\014\210J\220d\230(\240!\330\014\017\210w\220c\230\021\330\020\027\220q\340\010\016\210m\2301\230B\230a\230q\200A\340\010\014\210K\220q\330\010\017\210t\2201\220D\230\001\200A\340\010\014\210M\230\036\240q\250\004\250G\2601\260D\270\001\360\006\000\t\017\210d\220&\230\002\230$\230e\2409\250D\260\t\3209N\310a\310t\320SZ\320Z^\320^_\330\014\020\220\r\230]\250!\2501\250D\260\007\260t\2701\200A\360\n\000\t\r\320\014\035\230Q\330\010\020\220\003\2201\220D\230\001\340\010\017\210w\220a\220t\2301\330\010\013\2106\220\022\2201\330\014\024\220L\240\001\240\023\240E\250\027\260\001\260\024\260Q\330\r\023\2203\220a\330\014\024\220I\230Q\230d\240)\2501\250A\330\010\013\2104\210q\330\014\024\220D\230\001\230\024\230U\240\"\240A\330\010\020\220\001\330\010\017\210q\200A\340\010\014\320\014\035\230Q\330\010\017\210t\2201\220D\230\001\200A\330""\010\r\210R\210v\220Q\340\010*\320*B\300$\300e\310:\320UY\320Yd\320de\360\006\000\t\017\210f\220C\220u\230D\240\005\240Q\330\014\020\220\013\2301\340\014\017\210t\2206\230\023\230E\240\023\240D\250\010\260\003\2604\260v\270Q\270b\300\001\330\020\021\340\014\024\320\024,\250D\260\005\260Z\270t\300;\310a\200A\330\010\r\210R\210v\220Q\330\010\014\210I\220Q\200A\330\010\r\210R\210v\220Q\360\006\000\t\017\210d\220&\230\003\2305\240\005\320%<\270D\300\005\300W\310H\320T\\\320\\]\330\014\020\220\013\2301\200A\330\010\r\210R\210v\220Q\360\006\000\t\020\320\017&\240d\250%\250w\260h\270h\300a\330\014\020\220\013\2301\200A\330\010\r\210R\210v\220Q\340\010(\320(>\270d\300%\300z\320QU\320U`\320`a\360\006\000\t\017\210f\220C\220u\230D\240\005\240Q\330\014\020\220\013\2301\340\014\017\210t\2206\230\023\230E\240\023\240D\250\010\260\003\2604\260v\270Q\270b\300\001\330\020\021\340\014\024\320\024*\250$\250e\260:\270T\300\033\310A\200A\360\006\000\t\016\210R\210v\220Q\360\006\000\t\021\320\020'\240t\2505\260\001\330\010\016\210f\220C\220u\230D\240\005\240X\250X\260[\300\004\300E\310\030\320QT\320TU\330\014\020\220\013\2301\330\014\024\320\024+\2504\250u\260A\200A\340\014\035\230T\240\021\330\014\027\220w\230a\230t\2401\330\014\033\2303\230a\230q\340\010\013\2106\220\023\220A\330\014\024\220E\230\021\230!\340\014\024\220E\230\021\230#\230U\240'\250\021\250!\340\010\013\2104\210q\330\014\024\220I\230Q\230d\320\"4\260A\260T\270\021\340\014\024\220A\340\010\017\210q\200A\340\010)\250\030\260\021\260&\270\001\270\024\270W\300B\300g\310V\320S_\320_`\200A\340\010!\240\030\250\021\250&\260\001\260\024\260W\270B\270g\300V\310;\320VW\200A\340\010%\240X\250Q\250f\260A\260T\270\027\300\002\300'\310\026\310{\320Z[\200A\330\010\016\210a\200A\360\n\000\t\017\210a\200A\340\010\016\210a\200A\360\022\000\r\037\230a\340\010\020\220\013\2308\2401\340\010\016\210g\220R\220t\2306\240\021\240\"\240A\330\014\023\2204\220v\230Q\230b\240\007\240q\250\001\330\014\022\220%\220s\230!\330\020\026\220a\220t\2308""\240:\250Q\330\020\023\2204\220s\230!\330\024\031\230\021\230#\230[\250\002\250&\3200C\3001\340\020\027\220t\2301\340\014\026\220a\340\010\017\210q\200A\360\036\000\t\027\220a\220q\330\010\024\220A\330\010\014\210C\210u\220I\230X\240Q\240g\250T\260\021\330\014\024\220D\230\001\230\021\330\014\017\210s\220!\2207\230\"\230A\330\020\031\230\027\240\001\240\022\2401\240E\250\021\250\"\250G\2601\260E\270\022\2702\270Q\340\020\031\230\027\240\003\2401\240E\250\021\250\"\250A\340\010\013\2104\210q\330\014\023\2203\220e\2301\230A\330\r\022\220#\220Q\330\014\023\2204\220u\230A\230Q\340\014\023\2205\230\002\230+\240Q\240a\200A\330\010\017\210\177\230a\230t\2407\250(\260!\2604\260q\200A\330\010\017\210\177\230a\230t\2407\250!\2504\250w\260a\260t\2701\200A\340\010)\320)>\270d\300!\330\010(\250\010\260\001\260\024\260Y\270f\300L\320PV\320VW\200A\340\010)\320)>\270d\300!\330\010(\250\010\260\001\260\024\260Y\270f\300M\320QW\320WX\200A\360*\000\t\027\220d\230!\340\010\026\220a\360\006\000\t\026\220T\230\021\230)\2408\2501\250A\250V\2608\2707\300#\300Q\300a\340\010\014\210G\2201\330\014\025\220Q\220e\2301\230D\240\003\2401\240C\240t\2505\260\005\260Q\260c\270\021\270!\330\014\027\220w\230a\230}\250A\250X\260T\270\031\300#\300Q\340\010\017\210q\200A\340\010\017\320\017*\250'\260\021\260&\270\006\270e\3007\310!\3104\310q\200A\340\010\036\230h\240a\240v\250Q\250d\260'\270\022\2701\200A\340\010&\240h\250a\250v\260Q\260d\270'\300\022\3007\310&\320P]\320]^\200A\340\010&\240h\250a\250v\260Q\260d\270'\300\022\3007\310&\320PZ\320Z[\200A\340\010\036\230h\240a\240v\250T\260\027\270\002\270*\300F\310!\200A\340\010\016\210n\230A\230R\230q\240\004\240A\200A\340\010\017\210q\200A\360\032\000\t\020\210q\200A\340\010\024\320\024(\250\001\250\026\250q\200A\330\010\017\320\017\037\230q\240\004\240G\2501\250D\260\001\200A\330\010\014\320\014\037\230q\330\010\r\210R\210y\230\001\230\021\200A\360\032\000\r\032\230\021\330\014\037\230q\240\001\240\027\250\006\250d\260!\2601\260G\2701\270H\300D\310\005""\310T\320QR\360\006\000\t\r\210M\230\024\230[\250\001\330\014\017\210z\230\021\230+\240Q\330\020\025\220W\230G\240;\250a\250q\330\021\032\230!\330\020\032\230%\230t\2401\330\020\033\2301\330\020\025\220W\230A\230X\240Y\250a\250q\340\020\033\2305\240\004\240A\330\020\033\2305\240\004\240A\330\020\033\2301\330\020\025\220W\230A\230X\240Y\250a\250z\270\021\340\010\017\210u\220A\220Q\200A\330\010\017\210r\220\021\220$\220k\240\021\240$\240e\2501\250D\260\001\200A\330\010\017\210r\220\021\220$\220k\240\021\240$\240i\250q\260\004\260A\200A\330\010\017\210r\220\021\220$\220k\240\021\240$\240i\250q\260\004\260I\270Q\270d\300)\3101\310D\320PQ\200A\330\010\017\210r\220\021\220$\220k\240\021\240$\240i\250q\260\004\260I\270Q\270d\300)\3101\310D\320PZ\320Z[\320[_\320_`\200A\330\010\017\210r\220\021\220$\220k\240\021\240$\240j\260\001\260\024\260Q\200A\360\014\000\t\020\210s\220!\2201\200A\330\010\017\210t\2201\200A\330\010\017\210t\2201\220D\230\001\200A\340\010\017\210t\2201\220D\230\001\200A\360\014\000\t\020\210t\2201\220D\230\001\200A\340\010 \240\010\250\001\250\026\250t\2607\270\"\270J\300f\310A\200A\330\010\t\330\014\017\210t\2207\230#\230Q\330\020\025\220R\220y\240\001\330\020\024\220I\320\035=\270T\300\025\300a\330\020\024\320\0241\260\030\270\021\270$\270i\300q\310\004\310F\320RS\330\014\r\330\020\027\220t\2301\230D\240\001\330\023\024\340\014\020\220\t\230\024\230V\2401\330\014\017\210t\2207\230#\230Q\330\020\024\320\0241\260\030\270\021\270$\270i\300q\310\004\310F\320RS\200A\330\010\017\210u\220A\220\\\240\025\240g\250Q\250a\200A\340\010\017\210u\220C\220q\200A\330\010\017\210v\220Q\220d\230'\240\021\240$\240a\200A\340\010\017\210w\220a\220t\2308\2403\240a\240t\2507\260&\270\001\200A\330\010\017\210x\220q\230\001\200A\330\010\017\210x\220q\230\004\230A\340\010\t\330\014\024\220K\230q\240\004\240G\2501\330\017\020\360\010\000\t\014\2103\210a\210t\2208\2302\230Q\340\014\024\220O\2407\250!\2506\260\025\260g\270Q\270d\300!\340\010\017\210q\200A\340\010'\240x\250q\260""\006\260a\260t\2707\300\"\300A\200A\340\010'\240x\250q\260\006\260a\260t\2707\300\"\300G\3106\320Q]\320]^\200A\340\010\037\230x\240q\250\006\250d\260'\270\022\2701\200A\340\010\037\230x\240q\250\006\250d\260'\270\022\270:\300V\3101\200A\340\010\017\210y\230\006\320\0360\260\010\270\001\270\026\270t\3007\310\"\310A\3305=\270Q\270f\300D\310\007\310r\320QR\200A\340\010\017\210y\230\006\320\036.\250h\260a\260q\3307;\2707\300\"\300J\310f\320TU\3307G\300q\330.6\260a\260q\3307;\2707\300\"\300J\310f\320TU\3307G\300q\200A\330\010\017\210z\230\021\230$\230f\240A\240T\250\021\200A\330\010\017\210z\230\021\230$\230h\240m\2608\2701\270E\300\026\300q\310\004\310A\200A\330\010\017\210z\230\021\230$\230k\250\021\250$\250h\260a\260t\2701\320\004*\250!\340\010\014\210E\220\024\220[\240\001\330\014\017\210r\220\023\220E\230\024\230V\2404\240u\250C\250t\2601\260A\260X\270Q\330\020\027\220q\340\010\016\210o\230Q\230b\240\001\240\021\250J\260a\260q\250Q\200\001\330\004\n\210+\220Q\320\004-\250Q\340\010\014\210E\220\024\220^\2401\330\014\017\210r\220\023\220E\230\024\230V\2404\240u\250C\250t\2601\260A\260X\270Q\330\020\027\220q\340\010\016\320\016 \240\001\240\022\2401\240A\200\001\330\004%\240Q\240f\250A\200\001\360\010\000\005\016\210T\220\032\2304\230}\250D\260\006\260d\270*\300D\310\001\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260|\3007\310%\310s\320RV\320V_\320_f\320fk\320kn\320nr\320rz\360\000\000{\001B\002\360\000\000B\002C\002\330\004\007\200q\330\010\017\320\017(\250\004\250A\250W\260K\270w\300a\340\010\017\320\017(\250\004\250A\250W\260K\270q\200\001\360\010\000\005\016\210T\220\032\2304\230\177\250d\260,\270d\300.\320PT\320Te\320ei\320io\320os\320sz\320z~\360\000\000\177\001G\002\360\000\000G\002K\002\360\000\000K\002S\002\360\000\000S\002W\002\360\000\000W\002X\002\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330""\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260~\300W\310E\320QT\320TX\320Xc\320cj\320jo\320or\320rv\360\000\000w\001D\002\360\000\000D\002K\002\360\000\000K\002P\002\360\000\000P\002S\002\360\000\000S\002W\002\360\000\000W\002g\002\360\000\000g\002n\002\360\000\000n\002s\002\360\000\000s\002v\002\360\000\000v\002z\002\360\000\000z\002@\003\360\000\000@\003G\003\360\000\000G\003L\003\360\000\000L\003O\003\360\000\000O\003S\003\360\000\000S\003Z\003\360\000\000Z\003a\003\360\000\000a\003f\003\360\000\000f\003i\003\360\000\000i\003m\003\360\000\000m\003u\003\360\000\000u\003|\003\360\000\000|\003}\003\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\016\210T\220\032\2304\230{\250$\250e\2604\260v\270T\300\027\310\004\310I\320UY\320YZ\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260z\300\027\310\005\310S\320PT\320TX\320X_\320_d\320dg\320gk\320kq\320qx\320x}\360\000\000~\001A\002\360\000\000A\002E\002\360\000\000E\002M\002\360\000\000M\002T\002\360\000\000T\002Y\002\360\000\000Y\002\\\002\360\000\000\\\002`\002\360\000\000`\002h\002\360\000\000h\002o\002\360\000\000o\002p\002\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\016\210T\220\032\2304\230u\240D\250\006\250d\260)\2704\270q\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260t\2707\300%\300s\310$\310h\320V]\320]b\320be\320ei\320is\320sz\320z{\330\004\007\200q\330\010\017\320\017&\240d\250!\2507\260+\270W\300A\340\010\017\320\017&\240d\250!\2507\260+\270Q\200\001\360\010\000\005\016\210T\220\032\2304\230v\240T\250\027\260\004\260A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v""\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260v\270W\300E\310\023\310D\320PX\320X_\320_`\330\004\007\200q\330\010\017\320\017+\2504\250q\260\007\260{\300'\310\021\340\010\017\320\017+\2504\250q\260\007\260{\300!\200\001\360\010\000\005\016\210T\220\032\2304\230v\240T\250\027\260\004\260A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260v\270W\300E\310\023\310D\320PX\320X_\320_`\330\004\007\200q\330\010\017\320\017.\250d\260!\2607\270+\300W\310A\340\010\017\320\017.\250d\260!\2607\270+\300Q\200\001\360\010\000\005\016\210T\220\032\2304\230v\240T\250\021\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260x\270w\300a\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\016\210T\220\032\2304\230v\240T\250\027\260\004\260I\270T\300\021\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260v\270W\300E\310\023\310D\320PX\320X_\320_`\330\004\007\200q\330\010\017\320\017-\250T\260\021\260'\270\033\300G\3101\340\010\017\320\017-\250T\260\021\260'\270\033\300A\200\001\360\010\000\005\016\210T\220\032\2304\230v\240T\250\030\260\024\260Y\270d\300!\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260w\270g\300U\310#\310T\320QY\320Y`\320`e\320eh\320hl\320l{\360\000\000|\001C\002\360\000\000C\002D\002\330\004\007\200q\330\010\017\320\017*\250$\250a\250w\260k\300\027\310\001\340\010\017\320\017*\250$\250a\250w\260k\300\021\200\001\360\010\000\005\016\210T\220\032\2304\230v\240T\250\030\260\024\260Y\270d""\300!\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260w\270g\300U\310#\310T\320QY\320Y`\320`e\320eh\320hl\320lt\320t{\320{|\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\016\210T\220\032\2304\230v\240T\250\031\260$\260a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260x\270w\300e\3103\310d\320RY\320Y`\320`a\330\004\007\200q\330\010\017\320\017*\250$\250a\250w\260k\300\027\310\001\340\010\017\320\017*\250$\250a\250w\260k\300\021\200\001\360\010\000\005\016\210T\220\032\2304\230v\240T\250\031\260$\260h\270d\300!\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260x\270w\300e\3103\310d\320RY\320Y`\320`e\320eh\320hl\320lv\320v}\320}~\330\004\007\200q\330\010\017\320\017(\250\004\250A\250W\260K\270w\300a\340\010\017\320\017(\250\004\250A\250W\260K\270q\200\001\360\010\000\005\016\210T\220\032\2304\230v\240T\250\026\250t\2601\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260u\270G\3005\310\003\3104\310x\320W^\320^_\330\004\007\200q\330\010\017\320\017(\250\004\250A\250W\260K\270w\300a\340\010\017\320\017(\250\004\250A\250W\260K\270q\200\001\360\010\000\005\016\210T\220\032\2304\230y\250\004\250F\260$\260a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260x\270w\300e\3103\310d\320RZ\320Za\320ab\330\004\007\200q\330\010\017\320\017-\250T\260\021\260'\270\033\300G\3101\340\010\017\320\017-\250T\260\021\260'\270\033\300A\200\001\360\010""\000\005\016\210T\220\037\240\004\320$9\270\024\270^\3104\310{\320Z^\320^d\320dh\320hq\320qu\320u}\360\000\000~\001B\002\360\000\000B\002K\002\360\000\000K\002O\002\360\000\000O\002]\002\360\000\000]\002a\002\360\000\000a\002l\002\360\000\000l\002p\002\360\000\000p\002y\002\360\000\000y\002}\002\360\000\000}\002F\003\360\000\000F\003J\003\360\000\000J\003K\003\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230>\250\027\260\005\260S\270\004\270M\310\027\320PU\320UX\320X\\\320\\d\320dk\320kp\320ps\320sw\320w~\360\000\000\177\001F\002\360\000\000F\002K\002\360\000\000K\002N\002\360\000\000N\002R\002\360\000\000R\002Z\002\360\000\000Z\002a\002\360\000\000a\002f\002\360\000\000f\002i\002\360\000\000i\002m\002\360\000\000m\002z\002\360\000\000z\002A\003\360\000\000A\003F\003\360\000\000F\003I\003\360\000\000I\003M\003\360\000\000M\003W\003\360\000\000W\003^\003\360\000\000^\003c\003\360\000\000c\003f\003\360\000\000f\003j\003\360\000\000j\003r\003\360\000\000r\003y\003\360\000\000y\003~\003\360\000\000~\003A\004\360\000\000A\004E\004\360\000\000E\004M\004\360\000\000M\004T\004\360\000\000T\004Y\004\360\000\000Y\004\\\004\360\000\000\\\004`\004\360\000\000`\004h\004\360\000\000h\004o\004\360\000\000o\004p\004\330\004\007\200q\330\010\017\320\017'\240t\2501\250G\260;\270g\300Q\340\010\017\320\017'\240t\2501\250G\260;\270a\200\001\360\010\000\005\016\210T\220\037\240\004\320$9\270\024\270^\3104\310{\320Z^\320^d\320dh\320hq\320qu\320u}\360\000\000~\001B\002\360\000\000B\002K\002\360\000\000K\002O\002\360\000\000O\002]\002\360\000\000]\002a\002\360\000\000a\002l\002\360\000\000l\002p\002\360\000\000p\002y\002\360\000\000y\002}\002\360\000\000}\002F\003\360\000\000F\003J\003\360\000\000J\003K\003\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230>\250\027\260\005\260S\270\004\270M\310\027\320PU\320UX\320X\\\320\\d\320d""k\320kp\320ps\320sw\320w~\360\000\000\177\001F\002\360\000\000F\002K\002\360\000\000K\002N\002\360\000\000N\002R\002\360\000\000R\002Z\002\360\000\000Z\002a\002\360\000\000a\002f\002\360\000\000f\002i\002\360\000\000i\002m\002\360\000\000m\002z\002\360\000\000z\002A\003\360\000\000A\003F\003\360\000\000F\003I\003\360\000\000I\003M\003\360\000\000M\003W\003\360\000\000W\003^\003\360\000\000^\003c\003\360\000\000c\003f\003\360\000\000f\003j\003\360\000\000j\003r\003\360\000\000r\003y\003\360\000\000y\003~\003\360\000\000~\003A\004\360\000\000A\004E\004\360\000\000E\004M\004\360\000\000M\004T\004\360\000\000T\004Y\004\360\000\000Y\004\\\004\360\000\000\\\004`\004\360\000\000`\004h\004\360\000\000h\004o\004\360\000\000o\004p\004\330\004\007\200q\330\010\017\320\017,\250D\260\001\260\027\270\013\3007\310!\340\010\017\320\017,\250D\260\001\260\027\270\013\3001\200\001\360\010\000\005\016\210T\220\037\240\004\320$9\270\024\270^\3104\310{\320Z^\320^d\320dh\320hq\320qu\320u~\360\000\000\177\001C\002\360\000\000C\002Q\002\360\000\000Q\002U\002\360\000\000U\002`\002\360\000\000`\002d\002\360\000\000d\002m\002\360\000\000m\002q\002\360\000\000q\002z\002\360\000\000z\002~\002\360\000\000~\002\177\002\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230>\250\027\260\005\260S\270\004\270M\310\027\320PU\320UX\320X\\\320\\d\320dk\320kp\320ps\320sw\320w\177\360\000\000@\002G\002\360\000\000G\002L\002\360\000\000L\002O\002\360\000\000O\002S\002\360\000\000S\002`\002\360\000\000`\002g\002\360\000\000g\002l\002\360\000\000l\002o\002\360\000\000o\002s\002\360\000\000s\002}\002\360\000\000}\002D\003\360\000\000D\003I\003\360\000\000I\003L\003\360\000\000L\003P\003\360\000\000P\003X\003\360\000\000X\003_\003\360\000\000_\003d\003\360\000\000d\003g\003\360\000\000g\003k\003\360\000\000k\003s\003\360\000\000s\003z\003\360\000\000z\003\177\003\360\000\000\177\003B\004\360\000\000B\004F\004\360\000\000F\004N\004""\360\000\000N\004U\004\360\000\000U\004V\004\330\004\007\200q\330\010\017\320\017+\2504\250q\260\007\260{\300'\310\021\340\010\017\320\017+\2504\250q\260\007\260{\300!\200\001\360\010\000\005\016\210T\220\037\240\004\320$9\270\024\270^\3104\310v\320UY\320Yd\320dh\320hn\320nr\320r{\320{\177\360\000\000@\002I\002\360\000\000I\002M\002\360\000\000M\002[\002\360\000\000[\002_\002\360\000\000_\002j\002\360\000\000j\002n\002\360\000\000n\002w\002\360\000\000w\002{\002\360\000\000{\002D\003\360\000\000D\003H\003\360\000\000H\003I\003\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230>\250\027\260\005\260S\270\004\270M\310\027\320PU\320UX\320X\\\320\\a\320ah\320hm\320mp\320pt\320t|\360\000\000}\001D\002\360\000\000D\002I\002\360\000\000I\002L\002\360\000\000L\002P\002\360\000\000P\002X\002\360\000\000X\002_\002\360\000\000_\002d\002\360\000\000d\002g\002\360\000\000g\002k\002\360\000\000k\002x\002\360\000\000x\002\177\002\360\000\000\177\002D\003\360\000\000D\003G\003\360\000\000G\003K\003\360\000\000K\003U\003\360\000\000U\003\\\003\360\000\000\\\003a\003\360\000\000a\003d\003\360\000\000d\003h\003\360\000\000h\003p\003\360\000\000p\003w\003\360\000\000w\003|\003\360\000\000|\003\177\003\360\000\000\177\003C\004\360\000\000C\004K\004\360\000\000K\004R\004\360\000\000R\004W\004\360\000\000W\004Z\004\360\000\000Z\004^\004\360\000\000^\004f\004\360\000\000f\004m\004\360\000\000m\004n\004\330\004\007\200q\330\010\017\320\017'\240t\2501\250G\260;\270g\300Q\340\010\017\320\017'\240t\2501\250G\260;\270a\200\001\360\010\000\005\016\210T\220\037\240\004\320$9\270\024\270^\3104\310v\320UY\320Yd\320dh\320hs\320sw\320w}\360\000\000~\001B\002\360\000\000B\002K\002\360\000\000K\002O\002\360\000\000O\002X\002\360\000\000X\002\\\002\360\000\000\\\002j\002\360\000\000j\002n\002\360\000\000n\002y\002\360\000\000y\002}\002\360\000\000}\002F\003\360\000\000F\003J\003\360\000\000J\003S\003\360\000\000S\003W\003""\360\000\000W\003X\003\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230>\250\027\260\005\260S\270\004\270M\310\027\320PU\320UX\320X\\\320\\a\320ah\320hm\320mp\320pt\320t~\360\000\000\177\001F\002\360\000\000F\002K\002\360\000\000K\002N\002\360\000\000N\002R\002\360\000\000R\002Z\002\360\000\000Z\002a\002\360\000\000a\002f\002\360\000\000f\002i\002\360\000\000i\002m\002\360\000\000m\002u\002\360\000\000u\002|\002\360\000\000|\002A\003\360\000\000A\003D\003\360\000\000D\003H\003\360\000\000H\003U\003\360\000\000U\003\\\003\360\000\000\\\003a\003\360\000\000a\003d\003\360\000\000d\003h\003\360\000\000h\003r\003\360\000\000r\003y\003\360\000\000y\003~\003\360\000\000~\003A\004\360\000\000A\004E\004\360\000\000E\004M\004\360\000\000M\004T\004\360\000\000T\004Y\004\360\000\000Y\004\\\004\360\000\000\\\004`\004\360\000\000`\004h\004\360\000\000h\004o\004\360\000\000o\004t\004\360\000\000t\004w\004\360\000\000w\004{\004\360\000\000{\004C\005\360\000\000C\005J\005\360\000\000J\005K\005\330\004\007\200q\330\010\017\320\017/\250t\2601\260G\270;\300g\310Q\340\010\017\320\017/\250t\2601\260G\270;\300a\200\001\360\010\000\005\016\210T\220\033\230D\320 0\260\004\260F\270$\270i\300t\310;\320VZ\320Z[\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230:\240W\250E\260\023\260D\270\017\300w\310e\320SV\320VZ\320Zb\320bi\320in\320nq\320qu\320u\177\360\000\000@\002G\002\360\000\000G\002L\002\360\000\000L\002O\002\360\000\000O\002S\002\360\000\000S\002[\002\360\000\000[\002b\002\360\000\000b\002c\002\330\004\007\200q\330\010\017\320\017-\250T\260\021\260'\270\033\300G\3101\340\010\017\320\017-\250T\260\021\260'\270\033\300A\200\001\360\010\000\005\016\210T\220\033\230D\240\r\250T\260\031\270$\270f\300D\310\007\310t\320ST\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q""\340\010\027\220t\230:\240W\250E\260\023\260D\270\014\300G\3105\320PS\320SW\320W]\320]d\320di\320il\320lp\320px\320x\177\360\000\000@\002A\002\330\004\007\200q\330\010\017\320\017,\250D\260\001\260\027\270\013\3007\310!\340\010\017\320\017,\250D\260\001\260\027\270\013\3001\200\001\360\010\000\005\016\210T\220\033\230D\240\t\250\024\250V\2604\260w\270d\300!\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230:\240W\250E\260\023\260D\270\006\270g\300U\310#\310T\320QY\320Y`\320`a\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\016\210T\220\033\230D\240\t\250\024\250_\270D\300\006\300d\310'\320QU\320U^\320^b\320bc\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230:\240W\250E\260\023\260D\270\010\300\007\300u\310C\310t\320Sa\320ah\320hm\320mp\320pt\320tz\360\000\000{\001B\002\360\000\000B\002G\002\360\000\000G\002J\002\360\000\000J\002N\002\360\000\000N\002V\002\360\000\000V\002]\002\360\000\000]\002^\002\330\004\007\200q\330\010\017\320\017%\240T\250\021\250'\260\033\270G\3001\340\010\017\320\017%\240T\250\021\250'\260\033\270A\200\001\360\010\000\005\016\210T\220\033\230D\240\006\240d\250)\2604\260}\300D\310\007\310t\320ST\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230:\240W\250E\260\023\260D\270\010\300\007\300u\310C\310t\320SY\320Y`\320`a\330\004\007\200q\330\010\017\320\0174\260D\270\001\270\027\300\013\3107\320RS\340\010\017\320\0174\260D\270\001\270\027\300\013\3101\200\001\360\010\000\005\016\210T\220\033\230D\240\006\240d\250)\2604\260{\300$\300a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230:\240W\250E\260\023\260D\270\010\300\007\300u""\310C\310t\320S]\320]d\320di\320il\320lp\320px\320x\177\360\000\000@\002A\002\330\004\007\200q\330\010\017\320\017(\250\004\250A\250W\260K\270w\300a\340\010\017\320\017(\250\004\250A\250W\260K\270q\200\001\360\010\000\005\016\210T\220\033\230D\240\006\240d\250)\2604\260y\300\004\300F\310$\310k\320Y]\320]f\320fj\320js\320sw\320wx\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250%\250s\260$\260h\270g\300U\310#\310T\320QV\320V]\320]b\320be\320ei\320is\320sz\320z\177\360\000\000@\002C\002\360\000\000C\002G\002\360\000\000G\002O\002\360\000\000O\002V\002\360\000\000V\002[\002\360\000\000[\002^\002\360\000\000^\002b\002\360\000\000b\002j\002\360\000\000j\002q\002\360\000\000q\002v\002\360\000\000v\002y\002\360\000\000y\002}\002\360\000\000}\002E\003\360\000\000E\003L\003\360\000\000L\003M\003\330\004\007\200q\330\010\017\320\017(\250\004\250A\250W\260K\270w\300a\340\010\017\320\017(\250\004\250A\250W\260K\270q\200\001\360\010\000\005\016\210T\220\033\230D\240\006\240d\250)\2604\260y\300\004\300K\310t\320S\\\320\\`\320`a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250%\250s\260$\260h\270g\300U\310#\310T\320Q[\320[b\320bg\320gj\320jn\320nv\320v}\360\000\000~\001C\002\360\000\000C\002F\002\360\000\000F\002J\002\360\000\000J\002R\002\360\000\000R\002Y\002\360\000\000Y\002Z\002\330\004\007\200q\330\010\017\320\017*\250$\250a\250w\260k\300\027\310\001\340\010\017\320\017*\250$\250a\250w\260k\300\021\200\001\360\010\000\005\016\210T\220\033\230D\240\006\240d\250)\2604\260y\300\004\300K\310t\320S\\\320\\`\320`a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250%\250s\260$\260h\270g\300U\310#\310T\320Q[\320[b\320bg\320gj\320jn\320nv\320v}\360\000\000~\001C\002\360\000\000C\002F\002\360\000\000F\002J\002\360""\000\000J\002R\002\360\000\000R\002Y\002\360\000\000Y\002Z\002\330\004\007\200q\330\010\017\320\017+\2504\250q\260\007\260{\300'\310\021\340\010\017\320\017+\2504\250q\260\007\260{\300!\200\001\360\010\000\005\016\210T\220\027\230\004\230F\240$\240f\250D\260\001\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2306\240\027\250\005\250S\260\004\260E\270\027\300\005\300S\310\004\310H\320T[\320[\\\330\004\007\200q\330\010\017\320\017&\240d\250!\2507\260+\270W\300A\340\010\017\320\017&\240d\250!\2507\260+\270Q\200\001\360\010\000\005\016\210T\220\021\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250!\330\004\007\200q\330\010\017\320\017/\250t\2601\260G\270;\300g\310Q\340\010\017\320\017/\250t\2601\260G\270;\300a\200\001\360\010\000\005\016\210T\220\027\230\004\230J\240d\250&\260\004\260A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2306\240\027\250\005\250S\260\004\260I\270W\300E\310\023\310D\320PX\320X_\320_`\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\016\210T\220\027\230\004\230K\240t\250=\270\004\270I\300T\310\021\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230<\240w\250e\2603\260d\270(\300'\310\021\330\004\007\200q\330\010\017\320\0179\270\024\270Q\270g\300[\320PW\320WX\340\010\017\320\0179\270\024\270Q\270g\300[\320PQ\200\001\360\010\000\005\016\210T\220\030\230\024\230V\2404\240y\260\004\260I\270T\300\021\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2307\240'\250\025\250c\260\024\260X\270W\300E\310\023\310D\320PX\320X_\320_d\320dg\320gk\320ku""\320u|\320|}\330\004\007\200q\330\010\017\320\017'\240t\2501\250G\260;\270g\300Q\340\010\017\320\017'\240t\2501\250G\260;\270a\200\001\360\010\000\005\016\210T\220\035\230d\240&\250\004\250H\260D\270\t\300\024\300[\320PT\320TU\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230<\240w\250e\2603\260d\270'\300\027\310\005\310S\320PT\320T\\\320\\c\320ch\320hk\320ko\320oy\360\000\000z\001A\002\360\000\000A\002F\002\360\000\000F\002I\002\360\000\000I\002M\002\360\000\000M\002U\002\360\000\000U\002\\\002\360\000\000\\\002]\002\330\004\007\200q\330\010\017\320\017+\2504\250q\260\007\260{\300'\310\021\340\010\017\320\017+\2504\250q\260\007\260{\300!\200\001\360\010\000\005\016\210T\220\035\230d\240&\250\004\250I\260T\270\033\300D\310\001\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230<\240w\250e\2603\260d\270(\300'\310\025\310c\320QU\320U_\320_f\320fk\320kn\320nr\320rz\360\000\000{\001B\002\360\000\000B\002C\002\330\004\007\200q\330\010\017\320\017/\250t\2601\260G\270;\300g\310Q\340\010\017\320\017/\250t\2601\260G\270;\300a\200\001\360\010\000\005\016\210T\220\035\230d\240&\250\004\250I\260T\270\033\300D\310\001\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230<\240w\250e\2603\260d\270(\300'\310\025\310c\320QU\320U_\320_f\320fk\320kn\320nr\320rz\360\000\000{\001B\002\360\000\000B\002C\002\330\004\007\200q\330\010\017\320\017.\250d\260!\2607\270+\300W\310A\340\010\017\320\017.\250d\260!\2607\270+\300Q\200\001\360\010\000\005\016\210T\220\031\230$\230f\240D\250\t\260\024\260W\270D\300\010\310\004\310A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250%\250s\260$\260h\270g\300U\310#\310T\320QW\320W^\320^c\320cf\320fj\320jq\320qx\320x}\360\000\000~""\001A\002\360\000\000A\002E\002\360\000\000E\002K\002\360\000\000K\002R\002\360\000\000R\002S\002\330\004\007\200q\330\010\017\320\017(\250\004\250A\250W\260K\270w\300a\340\010\017\320\017(\250\004\250A\250W\260K\270q\200\001\360\010\000\005\016\210T\220\031\230$\230f\240D\250\007\250t\2601\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250%\250s\260$\260f\270G\3005\310\003\3104\310x\320W^\320^_\330\004\007\200q\330\010\017\320\017%\240T\250\021\250'\260\033\270G\3001\340\010\017\320\017%\240T\250\021\250'\260\033\270A\200\001\360\010\000\005\016\210T\220\031\230$\230f\240D\250\007\250t\2601\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250%\250s\260$\260f\270G\3005\310\003\3104\310x\320W^\320^_\330\004\007\200q\330\010\017\320\017.\250d\260!\2607\270+\300W\310A\340\010\017\320\017.\250d\260!\2607\270+\300Q\200\001\360\010\000\005\016\210T\220\031\230$\230i\240t\2506\260\024\260W\270D\300\t\310\024\310Q\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250%\250s\260$\260h\270g\300U\310#\310T\320QW\320W^\320^c\320cf\320fj\320jr\320ry\320y~\360\000\000\177\001B\002\360\000\000B\002F\002\360\000\000F\002M\002\360\000\000M\002T\002\360\000\000T\002U\002\330\004\007\200q\330\010\017\320\017%\240T\250\021\250'\260\033\270G\3001\340\010\017\320\017%\240T\250\021\250'\260\033\270A\200\001\360\010\000\005\016\210T\220\031\230$\230k\250\024\250V\2604\260v\270T\300\031\310$\310h\320VZ\320Zb\320bf\320fg\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250%\250s\260$\260j\300\007\300u\310C\310t\320S[\320[b\320bg\320gj\320jn\320nu\320u|\360\000\000}\001B\002\360\000\000B\002E\002\360\000\000E\002I\002\360\000\000I\002P\002""\360\000\000P\002W\002\360\000\000W\002\\\002\360\000\000\\\002_\002\360\000\000_\002c\002\360\000\000c\002j\002\360\000\000j\002q\002\360\000\000q\002r\002\330\004\007\200q\330\010\017\320\0175\260T\270\021\270'\300\033\310G\320ST\340\010\017\320\0175\260T\270\021\270'\300\033\310A\200\001\360\010\000\005\016\210T\220\026\220t\2301\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250!\330\004\007\200q\330\010\017\320\017-\250T\260\021\260'\270\033\300G\3101\340\010\017\320\017-\250T\260\021\260'\270\033\300A\200\001\360\010\000\005\016\210T\220\036\230t\2406\250\024\250W\260D\270\010\300\004\300A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230=\250\007\250u\260C\260t\2706\300\027\310\005\310S\320PT\320T[\320[b\320bg\320gj\320jn\320nv\320v}\320}~\330\004\007\200q\330\010\017\320\017'\240t\2501\250G\260;\270g\300Q\340\010\017\320\017'\240t\2501\250G\260;\270a\200\001\360\010\000\005\016\210T\220\036\230t\2406\250\024\250Y\260d\270!\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230=\250\007\250u\260C\260t\2708\3007\310%\310s\320RV\320Vc\320cj\320jk\330\004\007\200q\330\010\017\320\017-\250T\260\021\260'\270\033\300G\3101\340\010\017\320\017-\250T\260\021\260'\270\033\300A\200\001\360\010\000\005\016\210T\220\036\230t\2406\250\024\250Y\260d\270!\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230=\250\007\250u\260C\260t\2708\3007\310%\310s\320RV\320Vc\320cj\320jk\330\004\007\200q\330\010\017\320\017*\250$\250a\250w\260k\300\027\310\001\340\010\017\320\017*\250$\250a\250w\260k\300\021\200\001\360\010\000\005\016\210T\220\036\230t\2406\250\024\250Y\260d\270!\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010""\022\220!\330\010\027\220q\340\010\027\220t\230=\250\007\250u\260C\260t\2708\3007\310%\310s\320RV\320Vc\320cj\320jk\330\004\007\200q\330\010\017\320\017&\240d\250!\2507\260+\270W\300A\340\010\017\320\017&\240d\250!\2507\260+\270Q\200\001\360\010\000\005\016\210T\220\026\220t\2307\240$\240a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2306\240\027\250\005\250S\260\004\260H\270G\3001\330\004\007\200q\330\010\017\320\017-\250T\260\021\260'\270\033\300G\3101\340\010\017\320\017-\250T\260\021\260'\270\033\300A\200\001\360\010\000\005\016\210T\220\026\220t\2307\240$\240a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2306\240\027\250\005\250S\260\004\260H\270G\3001\330\004\007\200q\330\010\017\320\0171\260\024\260Q\260g\270[\310\007\310q\340\010\017\320\0171\260\024\260Q\260g\270[\310\001\200\001\360\010\000\005\016\210T\220\026\220t\2307\240$\240a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2306\240\027\250\005\250S\260\004\260H\270G\3001\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\016\210T\220\026\220t\2307\240$\240i\250t\2601\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2306\240\027\250\005\250S\260\004\260H\270G\3001\330\004\007\200q\330\010\017\320\017(\250\004\250A\250W\260K\270w\300a\340\010\017\320\017(\250\004\250A\250W\260K\270q\200\001\360\010\000\005\016\210T\220\036\230t\2409\250D\260\017\270t\320CU\320UY\320Y_\320_c\320ci\320im\320mx\320x|\360\000\000}\001F\002\360\000\000F\002J\002\360\000\000J\002R\002\360\000\000R\002V\002\360\000\000V\002^\002\360\000\000^\002b\002\360\000\000b\002c\002\330\004\014\210G\2201\220F\230,\240a""\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230=\250\007\250u\260C\260t\2708\3007\310%\310s\320RV\320V^\320^e\320ef\330\004\007\200q\330\010\017\320\0173\2604\260q\270\007\270{\310'\320QR\340\010\017\320\0173\2604\260q\270\007\270{\310!\200\001\360\010\000\005\016\210T\320\021'\240t\250;\260d\270&\300\004\300A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\320\0330\260\007\260u\270C\270t\300:\310W\320TY\320Y\\\320\\`\320`h\320ho\320op\330\004\007\200q\330\010\017\320\017,\250D\260\001\260\027\270\013\3007\310!\340\010\017\320\017,\250D\260\001\260\027\270\013\3001\200\001\360\010\000\005\016\210T\220\026\220t\230;\240d\250&\260\004\260I\270T\300\031\310$\310k\320Y]\320]f\320fj\320js\320sw\320wx\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2305\240\007\240u\250C\250t\2608\2707\300%\300s\310$\310h\320V]\320]b\320be\320ei\320is\320sz\320z\177\360\000\000@\002C\002\360\000\000C\002G\002\360\000\000G\002O\002\360\000\000O\002V\002\360\000\000V\002[\002\360\000\000[\002^\002\360\000\000^\002b\002\360\000\000b\002j\002\360\000\000j\002q\002\360\000\000q\002v\002\360\000\000v\002y\002\360\000\000y\002}\002\360\000\000}\002E\003\360\000\000E\003L\003\360\000\000L\003M\003\330\004\007\200q\330\010\017\320\017/\250t\2601\260G\270;\300g\310Q\340\010\017\320\017/\250t\2601\260G\270;\300a\260\034\270Y\300f\310D\320PR\320RT\320TX\320XY\320YZ\230!\260\021\250\021\250!\230\001\270!\240\001\240\021\200\001\330\004)\250\021\250&\260\001\250a\220a\320\004.\250a\340\010\014\210E\220\024\220V\2301\330\014\017\210r\220\023\220E\230\024\230V\2404\240u\250C\250t\2601\260A\260X\270Q\330\020\027\220q\340\010\014\210E\220\024\220_\240A\330\014\017\210r\220\023\220A\330\020\027\220q\340\010\016\210k\230\021\230\"\230A\230Q\320\004&\240a\340\010\014\210E\220\024\220V\2301\330\014\017""\210r\220\023\220E\230\024\230V\2404\240u\250C\250t\2601\260A\260X\270Q\330\020\027\220q\340\010\016\210k\230\021\230\"\230A\230Q\200\001\330\004&\240a\240v\250Q\200\001\330\004.\250a\250v\260Q\240\035\250b\260\003\2601\240\035\250b\260\002\260!\230l\250)\2606\270\024\270R\270r\300\024\300Q\300a\200\001\330\004(\250\001\250\026\250q\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\2204\220x\230q\240\001\330\004\007\200|\2207\230!\330\010&\240a\240w\250n\270A\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\2205\230\010\240\001\240\021\330\004\007\200|\2207\230!\330\010'\240q\250\010\260\016\270a\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\2206\230\030\240\021\240!\330\004\007\200|\2207\230!\330\010(\250\001\250\031\260.\300\001\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220>\240\030\250\021\250!\330\004\007\200|\2207\230!\330\0100\260\001\3201B\300.\320PQ\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\2207\230(\240!\2401\330\004\007\200|\2207\230!\330\010)\250\021\250*\260N\300!\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220=\240\010\250\001\250\021\330\004\007\200|\2207\230!\330\010/\250q\3200@\300\016\310a\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\320\023#\2408\2501\250A\330\004\007\200|\2207\230!\330\0102\260!\3203F\300n\320TU\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\320\023+\2508\2601\260A\330\004\007\200|\2207\230!\330\010:\270!\320;V\320Vd\320de\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\2208\2308\2401\240A\330\004\007\200|\2207\230!\330\010*\250!\250;\260n\300A\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\2209\230H\240A\240Q\330\004\007\200|\2207\230!\330\010+\2501\250L\270\016\300a\330""\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\320\023%\240X\250Q\250a\330\004\007\200|\2207\230!\330\0104\260A\3205J\310.\320XY\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220:\230X\240Q\240a\330\004\007\200|\2207\230!\330\010,\250A\250]\270.\310\001\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\320\023&\240h\250a\250q\330\004\007\200|\2207\230!\330\0105\260Q\3206L\310N\320Z[\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220;\230h\240a\240q\330\004\007\200|\2207\230!\330\010-\250Q\250n\270N\310!\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\320\023'\240x\250q\260\001\330\004\007\200|\2207\230!\330\0106\260a\3207N\310n\320\\]\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220<\230x\240q\250\001\330\004\007\200|\2207\230!\330\010.\250a\250\177\270n\310A\330\004\013\2101\200\001\330\004'\240q\250\006\250a\240-\250r\260\023\260A\240-\250r\260\024\260Q";
    PyObject *data = NULL;
    CYTHON_UNUSED_VAR(__Pyx_DecompressString);
    #endif
    PyObject **stringtab = __pyx_mstate->__pyx_string_tab;
    Py_ssize_t pos = 0;
    for (int i = 0; i < 1236; i++) {
      Py_ssize_t bytes_length = index[i].length;
      PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL);
      if (likely(string) && i >= 239) PyUnicode_InternInPlace(&string);
      if (unlikely(!string)) {
        Py_XDECREF(data);
        __PYX_ERR(0, 1, __pyx_L1_error)
      }
      stringtab[i] = string;
      pos += bytes_length;
    }
    for (int i = 1236; i < 1472; i++) {
      Py_ssize_t bytes_length = index[i].length;
      PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length);
      stringtab[i] = string;
      pos += bytes_length;
      if (unlikely(!string)) {
        Py_XDECREF(data);
        __PYX_ERR(0, 1, __pyx_L1_error)
      }
    }
    Py_XDECREF(data);
    for (Py_ssize_t i = 0; i < 1472; i++) {
      if (unlikely(PyObject_Hash(stringtab[i]) == -1)) {
        __PYX_ERR(0, 1, __pyx_L1_error)
      }
    }
    #if CYTHON_IMMORTAL_CONSTANTS
    {
      PyObject **table = stringtab + 1236;
      for (Py_ssize_t i=0; i<236; ++i) {
        #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
        #if PY_VERSION_HEX < 0x030E0000
        if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
        #else
        if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
        #endif
        {
          Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);
        }
        #else
        Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
        #endif
      }
    }
    #endif
  }
  {
    PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 0;
    int8_t const cint_constants_1[] = {0,1,2,3,4,5,6,7};
    int32_t const cint_constants_4[] = {65535L,721188L,1001054L,7648235L,25911488L,36498167L,38393670L,49956226L,55859843L,74644840L,77647382L,79980051L,80024921L,84791606L,95473297L,101517009L,108645986L,109439038L,110864280L,111047890L,122555514L,129638214L,136528173L,146351514L,150259718L,151967487L,155722602L,158379213L,161488655L,162076439L,165129497L,167329159L,170597079L,187956686L,190901739L,196785206L,217670872L,221869336L,222070849L,222516709L,234067360L,236560182L,238750788L,238814246L,243009123L,253368434L,256063553L};
    for (int i = 0; i < 55; i++) {
      numbertab[i] = PyLong_FromLong((i < 8 ? cint_constants_1[i - 0] : cint_constants_4[i - 8]));
      if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  #if CYTHON_IMMORTAL_CONSTANTS
  {
    PyObject **table = __pyx_mstate->__pyx_number_tab;
    for (Py_ssize_t i=0; i<55; ++i) {
      #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
      #if PY_VERSION_HEX < 0x030E0000
      if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
      #else
      if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
      #endif
      {
        Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);
      }
      #else
      Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
      #endif
    }
  }
  #endif
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: init_codeobjects ### */
typedef struct {
    unsigned int argcount : 3;
    unsigned int num_posonly_args : 1;
    unsigned int num_kwonly_args : 1;
    unsigned int nlocals : 4;
    unsigned int flags : 10;
    unsigned int first_line : 11;
} __Pyx_PyCode_New_function_description;
/* NewCodeObj.proto */
static PyObject* __Pyx_PyCode_New(
        const __Pyx_PyCode_New_function_description descr,
        PyObject * const *varnames,
        PyObject *filename,
        PyObject *funcname,
        PyObject *line_table,
        PyObject *tuple_dedup_map
);


static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) {
  PyObject* tuple_dedup_map = PyDict_New();
  if (unlikely(!tuple_dedup_map)) return -1;
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 205};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_b_2};
    __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591__42, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 153};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_j};
    __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591__43, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 155};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_j};
    __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 241};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_x};
    __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_lambda, __pyx_mstate->__pyx_kp_b_iso88591_9AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 344};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_r};
    __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591__44, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 349};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 353};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 357};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_u};
    __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591__44, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 168};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_k};
    __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_lambda, __pyx_mstate->__pyx_kp_b_iso88591_Jaq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 173};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_c};
    __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_lambda, __pyx_mstate->__pyx_kp_b_iso88591_A_5V4q_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 337};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c};
    __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591__45, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 49};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_s_2, __pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mlsrule_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 82};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_object_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 46};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_s_2, __pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_rbacrule_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 104};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_s_2, __pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_rbacrule_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 37};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_role_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591__46, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 123};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u__47};
    __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 149};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_d_2};
    __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 206};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u__47};
    __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 240};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_n};
    __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 250};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c};
    __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_a_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 255};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 284};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_r};
    __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 457};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_cls};
    __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_defaults, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 506};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_c};
    __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_terules, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 518};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_c};
    __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_constraints, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 1057};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_r};
    __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591__48, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 132};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_p_2};
    __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 182};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_p_2};
    __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 188};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_s_2, __pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 254};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_c};
    __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_lambda, __pyx_mstate->__pyx_kp_b_iso88591_YfDPRRTTXXYYZ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 280};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_a_3, __pyx_mstate->__pyx_n_u_b_3};
    __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 281};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_c};
    __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_lambda, __pyx_mstate->__pyx_kp_b_iso88591_l_6_Rr_Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 379};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_s_2, __pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 455};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_s_2, __pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 531};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_s_2, __pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 770};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_r};
    __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 87};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 114};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_a_4};
    __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591_A_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 36};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_r};
    __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_user_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591__49, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 63};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_r};
    __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_user_pxi, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591__50, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_util_pxi, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_spec};
    __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_util_pxi, __pyx_mstate->__pyx_n_u_format, __pyx_mstate->__pyx_kp_b_iso88591_A_4q_4q_5_U_Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_other};
    __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_util_pxi, __pyx_mstate->__pyx_n_u_eq, __pyx_mstate->__pyx_kp_b_iso88591_A_uA_gQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_util_pxi, __pyx_mstate->__pyx_n_u_hash, __pyx_mstate->__pyx_kp_b_iso88591_A_t1D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_cls, __pyx_mstate->__pyx_n_u_value};
    __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_util_pxi, __pyx_mstate->__pyx_n_u_lookup, __pyx_mstate->__pyx_kp_b_iso88591_A_3aq_3aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS), 55};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_default_factory, __pyx_mstate->__pyx_n_u_args};
    __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_util_pxi, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ry, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 59};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_key};
    __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_util_pxi, __pyx_mstate->__pyx_n_u_getitem, __pyx_mstate->__pyx_kp_b_iso88591_A_5_aq_4_1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 65};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_key, __pyx_mstate->__pyx_n_u_defaultvalue};
    __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_util_pxi, __pyx_mstate->__pyx_n_u_missing, __pyx_mstate->__pyx_kp_b_iso88591_A_4_1_1_t_1_L_a_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 220};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_name_3, __pyx_mstate->__pyx_n_u_new_name};
    __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_util_pxi, __pyx_mstate->__pyx_n_u_lookup_boolean_name_sub, __pyx_mstate->__pyx_kp_b_iso88591_1_q_vS_1_AQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 38};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_wat83at7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t7_it1_G1F_a_vWE_Q_q_t6_S_HG1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_QfA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS), 135};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_kwargs, __pyx_mstate->__pyx_n_u_stack, __pyx_mstate->__pyx_n_u_bool_values, __pyx_mstate->__pyx_n_u_operator, __pyx_mstate->__pyx_n_u_expr_node, __pyx_mstate->__pyx_n_u_operand, __pyx_mstate->__pyx_n_u_operand1, __pyx_mstate->__pyx_n_u_operand2, __pyx_mstate->__pyx_n_u_b_2};
    __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_evaluate, __pyx_mstate->__pyx_kp_b_iso88591_A_q_d_1G1HD_TQR_M_z_Q_WG_aq_t1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 167};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_expression, __pyx_mstate->__pyx_kp_b_iso88591_A_t1D_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 171};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_symbol};
    __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_false_rules, __pyx_mstate->__pyx_kp_b_iso88591_A_d_YfMQWWX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 176};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 179};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_symbol};
    __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_true_rules, __pyx_mstate->__pyx_kp_b_iso88591_A_d_YfLPVVW, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 184};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_bools, __pyx_mstate->__pyx_n_u_truth_table, __pyx_mstate->__pyx_n_u_truth_list, __pyx_mstate->__pyx_n_u_row, __pyx_mstate->__pyx_n_u_values, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_i};
    __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_truth_table, __pyx_mstate->__pyx_kp_b_iso88591_A_d_a_T_81AV87_Qa_G1_Qe1D_1Ct5_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t_d_A_G1F_a_vWE_Q_q_t_0_uCt_W, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591__51, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 234};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_x};
    __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_lambda, __pyx_mstate->__pyx_kp_b_iso88591_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 235};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_x, __pyx_mstate->__pyx_n_u_y};
    __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_lambda, __pyx_mstate->__pyx_kp_b_iso88591_b_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 236};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_x, __pyx_mstate->__pyx_n_u_y};
    __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_lambda, __pyx_mstate->__pyx_kp_b_iso88591_r_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 237};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_x, __pyx_mstate->__pyx_n_u_y};
    __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_lambda, __pyx_mstate->__pyx_kp_b_iso88591_b_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 238};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_x, __pyx_mstate->__pyx_n_u_y};
    __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_lambda, __pyx_mstate->__pyx_kp_b_iso88591_b_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 239};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_x, __pyx_mstate->__pyx_n_u_y};
    __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_lambda, __pyx_mstate->__pyx_kp_b_iso88591_r_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 254};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_D_d_4_D_tST_G1F_a_vWE_Q_q_t_W, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 316};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_HD, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 363};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_boolcond_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_HD, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[77] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[77])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 50};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[78] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_bounds_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_r_k_iq_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[78])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[79] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_V4y_IT_G1F_a_vWE_Q_q_t7_c_XWE, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[79])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[80] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_AV1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[80])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 103};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_datum};
    __pyx_mstate_global->__pyx_codeobj_tab[81] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_bounds_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_RvQ_t5_fCuD_XX_E_QTTU_1_4uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[81])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[82] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[82])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[83] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[83])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[84] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_d_IT_D_G1F_a_vWE_Q_q_t_we3d_c, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[84])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[85] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_AV1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[85])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 60};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_perms};
    __pyx_mstate_global->__pyx_codeobj_tab[86] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_3at82Q_E_U_a_D_WAQ_r_k_iq_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[86])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[87] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_d_HD_PTTU_G1F_a_vWE_Q_q_t_we3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[87])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[88] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[88])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 90};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[89] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_r_k_j_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[89])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[90] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_d_IT_D_G1F_a_vWE_Q_q_t_we3d_c_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[90])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[91] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_1F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[91])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 170};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_precedence_2, __pyx_mstate->__pyx_n_u_max_precedence, __pyx_mstate->__pyx_n_u_operands, __pyx_mstate->__pyx_n_u_stack, __pyx_mstate->__pyx_n_u_StackObj, __pyx_mstate->__pyx_n_u_op, __pyx_mstate->__pyx_n_u_op_precedence, __pyx_mstate->__pyx_n_u_operator, __pyx_mstate->__pyx_n_u_operand_info, __pyx_mstate->__pyx_n_u_e, __pyx_mstate->__pyx_n_u_operand2_info, __pyx_mstate->__pyx_n_u_operand1_info, __pyx_mstate->__pyx_n_u_operand1, __pyx_mstate->__pyx_n_u_operand2};
    __pyx_mstate_global->__pyx_codeobj_tab[92] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_infix, __pyx_mstate->__pyx_kp_b_iso88591_A_4xs_q_q_a_a_a_q_a_vQ_vQ_vQ_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[92])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 245};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[93] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[93])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[94] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_k_V4vT_hVZZbbffg_G1F_a_vWE_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[94])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[95] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_2_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[95])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 414};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[96] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[96])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[97] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t9D_tCUUYY__cciimmxx_F_F_J_J, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[97])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[98] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[98])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 460};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[99] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_HD, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[99])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[100] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[100])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[101] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[101])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[102] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[102])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[103] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[103])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 530};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[104] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_constraint_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_HD, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[104])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[105] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[105])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[106] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[106])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 84};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[107] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_context_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[107])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[108] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_fD_WD_A_G1F_a_vWE_Q_q_t87_s_h, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[108])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[109] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_QfA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[109])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_cls, __pyx_mstate->__pyx_n_u_range, __pyx_mstate->__pyx_n_u_default_map, __pyx_mstate->__pyx_n_u_e};
    __pyx_mstate_global->__pyx_codeobj_tab[110] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_default_pxi, __pyx_mstate->__pyx_n_u_from_default_range, __pyx_mstate->__pyx_kp_b_iso88591_A_6a_7q_1_6a_7q_1_2_3a_1_1_Q_C1J, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[110])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 55};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_cls, __pyx_mstate->__pyx_n_u_range, __pyx_mstate->__pyx_n_u_default_map, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_e};
    __pyx_mstate_global->__pyx_codeobj_tab[111] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_default_pxi, __pyx_mstate->__pyx_n_u_from_default_range, __pyx_mstate->__pyx_kp_b_iso88591_A_1_2_6a_1_2_6a_Q_Kq_86_Jc_1_Q_I, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[111])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 145};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[112] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_default_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_r_k_iq_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[112])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[113] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_D_d_4_a_G1F_a_vWE_Q_q_t_WE_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[113])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[114] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_QfA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[114])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 168};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[115] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_default_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_4q_2Qd_Qd_1D_4q_2Qd_Qd_1D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[115])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[116] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_D_0_F_it_VZZ_G1F_a_vWE_Q_q_t, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[116])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[117] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[117])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 54};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_path, __pyx_mstate->__pyx_n_u_filetype, __pyx_mstate->__pyx_n_u_ctx};
    __pyx_mstate_global->__pyx_codeobj_tab[118] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_filecontexts_p, __pyx_mstate->__pyx_n_u_lookup, __pyx_mstate->__pyx_kp_b_iso88591_AAUUV_Qd_1E_xxrQR_vS_y_1_t7_m1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[118])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[119] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[119])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[120] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[120])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 46};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[121] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_fscontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_r_k_e1D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[121])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[122] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4uD_d_4q_G1F_a_vWE_Q_q_t9G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[122])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[123] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_1F_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[123])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 81};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_cls, __pyx_mstate->__pyx_n_u_tclass, __pyx_mstate->__pyx_n_u_name};
    __pyx_mstate_global->__pyx_codeobj_tab[124] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_fscontext_pxi, __pyx_mstate->__pyx_n_u_from_class, __pyx_mstate->__pyx_kp_b_iso88591_A_31_z_1HJfA_s_3_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[124])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[125] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_A_G1F_a_vWE_Q_q_q_q_d_7_WA_d_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[125])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[126] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_1F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[126])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 135};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[127] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_fscontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_4uAT_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[127])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[128] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4_e4vT_IUYYZ_G1F_a_vWE_Q_q_t9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[128])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[129] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[129])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[130] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[130])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[131] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[131])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[132] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[132])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[133] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[133])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[134] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[134])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[135] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[135])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 52};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[136] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_initsid_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_vQd_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[136])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[137] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4vT_A_G1F_a_vWE_Q_q_t9G5_4vWE, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[137])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[138] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[138])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[139] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[139])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[140] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[140])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 65};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[141] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_aliases, __pyx_mstate->__pyx_kp_b_iso88591_A_t1D_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[141])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 69};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_stmt, __pyx_mstate->__pyx_n_u_count};
    __pyx_mstate_global->__pyx_codeobj_tab[142] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_1D_4q_6_1_L_E_a_3a_IQd_1A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[142])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[143] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_D_V4wd_G1F_a_vWE_Q_q_t_WE_D_g, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[143])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[144] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[144])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 128};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[145] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_aliases, __pyx_mstate->__pyx_kp_b_iso88591_A_t1D_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[145])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 132};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_symbol};
    __pyx_mstate_global->__pyx_codeobj_tab[146] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_level_decl, __pyx_mstate->__pyx_kp_b_iso88591_A_B_a_4_3a_xq_IQ_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[146])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 140};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_stmt, __pyx_mstate->__pyx_n_u_count};
    __pyx_mstate_global->__pyx_codeobj_tab[147] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_1D_Qd_6_1_L_E_a_3a_IQd_1A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[147])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[148] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_D_T_fD_tST_G1F_a_vWE_Q_q_t_WE, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[148])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[149] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591__51, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[149])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 185};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[150] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_categories, __pyx_mstate->__pyx_kp_b_iso88591_A_t1D_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[150])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[151] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t6_Yd_G1F_a_vWE_Q_q_t_uCt87_s, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[151])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[152] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[152])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 253};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[153] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_xq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[153])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[154] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t6_Yd_G1F_a_vWE_Q_q_t_uCt87_s_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[154])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[155] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[155])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 377};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[156] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[156])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[157] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t6_Yd_G1F_a_vWE_Q_q_t_uCt87_s_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[157])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[158] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_1F_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[158])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 475};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_other};
    __pyx_mstate_global->__pyx_codeobj_tab[159] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_dom, __pyx_mstate->__pyx_kp_b_iso88591_A_uCq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[159])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 479};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_other};
    __pyx_mstate_global->__pyx_codeobj_tab[160] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_domby, __pyx_mstate->__pyx_kp_b_iso88591_A_uCq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[160])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 483};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[161] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[161])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[162] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_F_fD_G1F_a_vWE_Q_q_t6_S_E_S_H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[162])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[163] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_1F_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[163])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 532};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_datum};
    __pyx_mstate_global->__pyx_codeobj_tab[164] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_RvQ_d_zQUU_a_fCuD_Q_1_t6_E_D_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[164])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[165] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[165])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[166] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[166])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 589};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_datum};
    __pyx_mstate_global->__pyx_codeobj_tab[167] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_RvQ_B_e_UYYdde_fCuD_Q_1_t6_E_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[167])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[168] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[168])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[169] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[169])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 646};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_datum};
    __pyx_mstate_global->__pyx_codeobj_tab[170] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mls_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_RvQ_B_e_UYYdde_fCuD_Q_1_t6_E_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[170])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[171] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[171])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[172] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[172])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[173] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[173])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[174] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[174])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 69};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[175] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_mlsrule_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_r_k_iq_IQd_1DPQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[175])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[176] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_D_d_4y_F_kY_ffjjsswwx_G1F_a_v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[176])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[177] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_QfA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[177])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[178] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[178])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[179] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[179])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[180] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_netcontext_pxi, __pyx_mstate->__pyx_n_u_post_init, __pyx_mstate->__pyx_kp_b_iso88591_A_4uBnE_D_b_a_A_9_IUVVW_4uBnE_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[180])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[181] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_netcontext_pxi, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_4uCt1_Qd_a_2Qd_hat5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[181])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 46};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[182] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_netcontext_pxi, __pyx_mstate->__pyx_n_u_post_init, __pyx_mstate->__pyx_kp_b_iso88591_A_4uBl_s_fBl_A_7q_G1A_4uBl_s_fBl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[182])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 56};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[183] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_netcontext_pxi, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_4uCt1_3at1_2Qd_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[183])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 92};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[184] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_netcontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_at7_4wat1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[184])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[185] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4vT_IT_G1F_a_vWE_Q_q_t9G5_4vW, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[185])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[186] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[186])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 150};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[187] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_netcontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_1D_0_XQd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[187])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[188] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4vT_Yd_G1F_a_vWE_Q_q_t9G5_4wg, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[188])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[189] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[189])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 180};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[190] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_netcontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_4xq_Jat1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[190])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[191] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4vT_Yd_G1F_a_vWE_Q_q_t9G5_4wg_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[191])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[192] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[192])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 283};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[193] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_netcontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_z_hm81E_q_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[193])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[194] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4_D_d_D_G1F_a_vWE_Q_q_t9G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[194])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[195] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_QfA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[195])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 323};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[196] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_netcontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_z_k_hat1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[196])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[197] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4vT_hd_G1F_a_vWE_Q_q_t9G5_4xw, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[197])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[198] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_QfA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[198])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[199] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[199])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[200] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[200])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[201] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[201])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[202] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[202])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[203] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[203])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[204] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[204])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[205] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[205])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[206] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[206])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[207] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[207])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[208] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[208])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 63};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[209] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_objclass_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_e7_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[209])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[210] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t6_WD_A_G1F_a_vWE_Q_q_t_uCt6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[210])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[211] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_AV1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[211])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 171};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_symbol};
    __pyx_mstate_global->__pyx_codeobj_tab[212] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_objclass_pxi, __pyx_mstate->__pyx_n_u_constraints, __pyx_mstate->__pyx_kp_b_iso88591_A_B_a_4_S_7xq_IQ_Fa_t1D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[212])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 180};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[213] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_objclass_pxi, __pyx_mstate->__pyx_n_u_defaults, __pyx_mstate->__pyx_kp_b_iso88591_A_t1D_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[213])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 184};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_stmt};
    __pyx_mstate_global->__pyx_codeobj_tab[214] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_objclass_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_xq_A_Kq_G1_3at82Q_O7_6_gQd_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[214])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 199};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_symbol};
    __pyx_mstate_global->__pyx_codeobj_tab[215] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_objclass_pxi, __pyx_mstate->__pyx_n_u_validatetrans, __pyx_mstate->__pyx_kp_b_iso88591_A_B_a_4_s_HAT_RSEK1_t1D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[215])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[216] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4_d_d_PTTeeiioosszz_G_G_K_K_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[216])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[217] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[217])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[218] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[218])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[219] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[219])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[220] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[220])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[221] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[221])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 299};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[222] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_objclass_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_HA_d_j_D_HCr_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[222])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[223] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_Kt_IT_G1F_a_vWE_Q_q_t_we3d_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[223])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[224] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[224])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[225] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_object_pxi, __pyx_mstate->__pyx_n_u_copy, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[225])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_memo};
    __pyx_mstate_global->__pyx_codeobj_tab[226] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_object_pxi, __pyx_mstate->__pyx_n_u_deepcopy, __pyx_mstate->__pyx_kp_b_iso88591_A_ARq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[226])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 61};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[227] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_object_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_a_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[227])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[228] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t1_G1F_a_vWE_Q_q_t87_q_T_G1_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[228])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[229] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[229])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[230] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t7_a_G1F_a_vWE_Q_q_t6_S_HG1_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[230])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[231] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[231])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[232] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4vT_G1F_a_vWE_Q_q_t9G5_4xwa_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[232])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[233] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[233])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 113};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[234] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_object_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_a_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[234])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[235] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_G1F_a_vWE_Q_q_t87_q_t1G_gQ_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[235])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[236] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_AV1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[236])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 166};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[237] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_object_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_M_q_G1D_d_e9D_9NatSZZ___1D_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[237])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[238] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[238])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[239] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[239])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 232};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[240] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_object_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_HD_ar_4vS_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[240])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[241] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[241])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[242] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[242])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[243] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[243])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[244] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[244])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[245] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_polcap_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_1D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[245])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[246] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t7_a_G1F_a_vWE_Q_q_t6_S_HG1_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[246])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[247] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[247])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[248] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[248])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[249] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[249])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 65};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[250] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_rbacrule_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_r_k_iq_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[250])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[251] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_D_d_4y_KtS_a_G1F_a_vWE_Q_q_t8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[251])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[252] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[252])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 124};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[253] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_rbacrule_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_r_k_iq_IQd_1DPQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[253])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[254] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t_d_IT_kY_ffjjsswwx_G1F_a_vWE, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[254])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[255] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_AV1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[255])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 168};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[256] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_rbacrule_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_HD, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[256])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[257] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[257])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[258] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[258])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 210};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[259] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_rbacrule_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_HD, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[259])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[260] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[260])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[261] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[261])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[262] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_role_pxi, __pyx_mstate->__pyx_n_u_types, __pyx_mstate->__pyx_kp_b_iso88591_A_t1D_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[262])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 35};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_count, __pyx_mstate->__pyx_n_u_types, __pyx_mstate->__pyx_n_u_stmt, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_genexpr};
    __pyx_mstate_global->__pyx_codeobj_tab[263] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_role_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_D_1A_wat1_6_A_7_4q_6_A_7_4_AU, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[263])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[264] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_fD_t1_G1F_a_vWE_Q_q_t87_s_fG5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[264])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[265] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[265])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[266] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[266])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[267] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[267])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[268] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[268])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[269] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[269])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS), 58};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_kwargs};
    __pyx_mstate_global->__pyx_codeobj_tab[270] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_rule_pxi, __pyx_mstate->__pyx_n_u_enabled, __pyx_mstate->__pyx_kp_b_iso88591_A_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[270])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 73};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[271] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_rule_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A_a_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[271])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[272] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_D_d_4y_KtS_a_G1F_a_vWE_Q_q_t8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[272])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[273] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[273])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 79};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[274] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_copy, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[274])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 83};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_memo};
    __pyx_mstate_global->__pyx_codeobj_tab[275] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_deepcopy, __pyx_mstate->__pyx_kp_b_iso88591_A_ARq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[275])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 338};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_b_2};
    __pyx_mstate_global->__pyx_codeobj_tab[276] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_boolean, __pyx_mstate->__pyx_kp_b_iso88591_A_E_V1_r_A_q_nARq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[276])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 346};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_deref, __pyx_mstate->__pyx_n_u_c};
    __pyx_mstate_global->__pyx_codeobj_tab[277] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_category, __pyx_mstate->__pyx_kp_b_iso88591_E_r_E_V4uCt1AXQ_q_oQb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[277])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 354};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_cls};
    __pyx_mstate_global->__pyx_codeobj_tab[278] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_class, __pyx_mstate->__pyx_kp_b_iso88591_A_G4xq_t3a_q_l_2Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[278])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 362};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_common};
    __pyx_mstate_global->__pyx_codeobj_tab[279] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_common, __pyx_mstate->__pyx_kp_b_iso88591_A_Jd_wc_q_m1Baq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[279])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 370};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_ctx};
    __pyx_mstate_global->__pyx_codeobj_tab[280] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_context, __pyx_mstate->__pyx_kp_b_iso88591_A_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[280])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 374};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_level_2};
    __pyx_mstate_global->__pyx_codeobj_tab[281] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_level, __pyx_mstate->__pyx_kp_b_iso88591_A_q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[281])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 378};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_deref, __pyx_mstate->__pyx_n_u_s_2};
    __pyx_mstate_global->__pyx_codeobj_tab[282] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_sensitivity, __pyx_mstate->__pyx_kp_b_iso88591_Q_E_1_r_E_V4uCt1AXQ_q_1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[282])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 386};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_range};
    __pyx_mstate_global->__pyx_codeobj_tab[283] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_range, __pyx_mstate->__pyx_kp_b_iso88591_A_q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[283])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 390};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_r};
    __pyx_mstate_global->__pyx_codeobj_tab[284] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_role, __pyx_mstate->__pyx_kp_b_iso88591_A_E_V1_r_A_q_k_AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[284])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 398};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_deref, __pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[285] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_type, __pyx_mstate->__pyx_kp_b_iso88591_a_E_V1_r_E_V4uCt1AXQ_q_k_AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[285])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 406};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_deref, __pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[286] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_type_or_attr, __pyx_mstate->__pyx_kp_b_iso88591_a_E_V1_r_E_V4uCt1AXQ_q_E__A_r_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[286])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 418};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[287] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_typeattr, __pyx_mstate->__pyx_kp_b_iso88591_A_E__A_r_A_q_k_AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[287])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 426};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_u};
    __pyx_mstate_global->__pyx_codeobj_tab[288] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_lookup_user, __pyx_mstate->__pyx_kp_b_iso88591_A_E_V1_r_A_q_k_AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[288])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 437};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[289] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_bools, __pyx_mstate->__pyx_kp_b_iso88591_A_XQfAT_Z, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[289])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 441};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[290] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_bounds, __pyx_mstate->__pyx_kp_b_iso88591_A_WBgV_VW, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[290])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 445};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[291] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_categories, __pyx_mstate->__pyx_kp_b_iso88591_A_havQd_7_PZZ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[291])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 449};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[292] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_classes, __pyx_mstate->__pyx_kp_b_iso88591_A_havQd_7_P, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[292])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 453};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[293] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_commons, __pyx_mstate->__pyx_kp_b_iso88591_A_HAV1D_r_m, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[293])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 462};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[294] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_levels, __pyx_mstate->__pyx_kp_b_iso88591_A_xq_at7_G6Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[294])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 466};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[295] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_polcaps, __pyx_mstate->__pyx_kp_b_iso88591_A_xq_at7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[295])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 470};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[296] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_roles, __pyx_mstate->__pyx_kp_b_iso88591_A_6_gRwfKWX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[296])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 474};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[297] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_sensitivities, __pyx_mstate->__pyx_kp_b_iso88591_A_WBgVS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[297])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 478};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[298] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_types, __pyx_mstate->__pyx_kp_b_iso88591_A_6_gRwfKWX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[298])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 482};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[299] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_typeattributes, __pyx_mstate->__pyx_kp_b_iso88591_A_81F_4wb_vU_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[299])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 486};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[300] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_users, __pyx_mstate->__pyx_kp_b_iso88591_A_6_gRwfKWX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[300])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 493};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[301] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_conditionals, __pyx_mstate->__pyx_kp_b_iso88591_A_6_WBa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[301])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 497};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[302] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_mlsrules, __pyx_mstate->__pyx_kp_b_iso88591_A_havQd_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[302])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 501};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[303] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_rbacrules, __pyx_mstate->__pyx_kp_b_iso88591_A_y_0_t7_A5_QfD_rQR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[303])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 527};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[304] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_fs_uses, __pyx_mstate->__pyx_kp_b_iso88591_A_HAV4wb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[304])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 531};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[305] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_genfscons, __pyx_mstate->__pyx_kp_b_iso88591_A_xq_d_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[305])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 535};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[306] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_ibendportcons, __pyx_mstate->__pyx_kp_b_iso88591_A_81F_gRz_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[306])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 539};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[307] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_ibpkeycons, __pyx_mstate->__pyx_kp_b_iso88591_A_t7_JfA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[307])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 543};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[308] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_initialsids, __pyx_mstate->__pyx_kp_b_iso88591_A_G2ZvQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[308])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 547};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[309] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_netifcons, __pyx_mstate->__pyx_kp_b_iso88591_A_xq_d_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[309])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 551};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[310] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_nodecons, __pyx_mstate->__pyx_kp_b_iso88591_A_y_haq7_7_JfTU7Gq_6aq7_7_JfTU7G, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[310])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 560};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[311] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_portcons, __pyx_mstate->__pyx_kp_b_iso88591_A_havT_F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[311])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 567};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[312] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_devicetreecons, __pyx_mstate->__pyx_kp_b_iso88591_A_HAQ_1_F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[312])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 572};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[313] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_iomemcons, __pyx_mstate->__pyx_kp_b_iso88591_A_xq_d_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[313])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 576};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[314] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_ioportcons, __pyx_mstate->__pyx_kp_b_iso88591_A_t7_JfA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[314])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 580};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[315] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_pcidevicecons, __pyx_mstate->__pyx_kp_b_iso88591_A_81A_0_r_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[315])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 585};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[316] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_selinuxpolicy, __pyx_mstate->__pyx_n_u_pirqcons, __pyx_mstate->__pyx_kp_b_iso88591_A_havT_F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[316])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[317] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[317])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[318] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[318])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS), 81};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_kwargs};
    __pyx_mstate_global->__pyx_codeobj_tab[319] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_enabled, __pyx_mstate->__pyx_kp_b_iso88591_A_4_S_1_4_IS_4q_4t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[319])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[320] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_9_4_Z_ddhhqquu_C_C_Q_Q_U_U_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[320])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[321] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[321])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 162};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_source, __pyx_mstate->__pyx_n_u_target, __pyx_mstate->__pyx_n_u_perms, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_genexpr};
    __pyx_mstate_global->__pyx_codeobj_tab[322] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_derive_expanded, __pyx_mstate->__pyx_kp_b_iso88591_A_4xwa_ar_a_7_XT_t1_ar_6MQdRS_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[322])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 210};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_perms};
    __pyx_mstate_global->__pyx_codeobj_tab[323] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_4t1_r_k_iq_IQdRS_D_s_7_A_E_U_B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[323])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[324] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_9_4_Z_ddhhqquu_B_B_K_K_O_O_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[324])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[325] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_AV1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[325])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 237};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_spec, __pyx_mstate->__pyx_n_u_perms, __pyx_mstate->__pyx_n_u_shortlist, __pyx_mstate->__pyx_n_u__47, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_group};
    __pyx_mstate_global->__pyx_codeobj_tab[326] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_format, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_A_CuIXQgT_D_s_7_A_1E_G1E_2Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[326])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 274};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_genexpr};
    __pyx_mstate_global->__pyx_codeobj_tab[327] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_ranges, __pyx_mstate->__pyx_kp_b_iso88591_A_s_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[327])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[328] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_A_G1F_a_vWE_Q_q_q_q_Qg_q_Qg, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[328])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[329] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[329])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[330] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_A_G1F_a_vWE_Q_q_q_q_Qg_q_Qg, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[330])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[331] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[331])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 402};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_perms};
    __pyx_mstate_global->__pyx_codeobj_tab[332] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_4t1_r_k_iq_IQdR_a_D_uG3b_E_Baq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[332])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[333] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_9_4_Z_ddhhqquu_B_B_K_K_O_O_a_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[333])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[334] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591__51, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[334])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 477};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[335] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_4t1_r_k_iq_IQdR_a_E_at1_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[335])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[336] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_9_4vUYYddhhnnrr_I_I_M_M_____j, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[336])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[337] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_AV1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[337])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 555};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[338] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_r_k_iq_IQd_1DPZZ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[338])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[339] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_9_4vUYYddhhssww_B_B_K_K_O_O_X, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[339])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[340] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_AV1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[340])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 624};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_key, __pyx_mstate->__pyx_n_u_node, __pyx_mstate->__pyx_n_u_bucket, __pyx_mstate->__pyx_n_u_count};
    __pyx_mstate_global->__pyx_codeobj_tab[341] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_ruletype_count, __pyx_mstate->__pyx_kp_b_iso88591_A_a_81_gRt6_A_4vQb_q_s_at8_Q_4s, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[341])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 650};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[342] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_HD_gQa_4vS_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[342])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[343] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[343])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[344] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[344])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 710};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_curr, __pyx_mstate->__pyx_n_u_count};
    __pyx_mstate_global->__pyx_codeobj_tab[345] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_ruletype_count, __pyx_mstate->__pyx_kp_b_iso88591_A_81_t1_e3a_e4_F2EQ_4q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[345])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 727};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[346] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_HD, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[346])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[347] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[347])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[348] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[348])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 749};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[349] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_next_stype, __pyx_mstate->__pyx_kp_b_iso88591_A_t7_Q_Ry_I_T_a_1_iq_FRS_t1D_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[349])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 772};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[350] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_terule_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_RvQ_IQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[350])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[351] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[351])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[352] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[352])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 36};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[353] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A_a_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[353])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 40};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[354] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_attributes, __pyx_mstate->__pyx_kp_b_iso88591_A_a_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[354])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 44};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[355] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_aliases, __pyx_mstate->__pyx_kp_b_iso88591_A_a_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[355])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[356] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t7_a_G1F_a_vWE_Q_q_t6_S_HG1_q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[356])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[357] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[357])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 91};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[358] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_attributes, __pyx_mstate->__pyx_kp_b_iso88591_A_Q_t1D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[358])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 96};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[359] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_aliases, __pyx_mstate->__pyx_kp_b_iso88591_A_t1D_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[359])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 100};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_count, __pyx_mstate->__pyx_n_u_stmt, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_genexpr};
    __pyx_mstate_global->__pyx_codeobj_tab[360] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_Q_1D_wat1_6_1_L_E_Q_3a_IQd_1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[360])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[361] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_D__D_d_QUU_bbc_G1F_a_vWE_Q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[361])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[362] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[362])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 160};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[363] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_expand, __pyx_mstate->__pyx_kp_b_iso88591_A_Kq_t1D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[363])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 165};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[364] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_attributes, __pyx_mstate->__pyx_kp_b_iso88591_A_nARq_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[364])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 169};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[365] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_aliases, __pyx_mstate->__pyx_kp_b_iso88591_A_nARq_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[365])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 178};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[366] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_1D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[366])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[367] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_fD_t1_G1F_a_vWE_Q_q_t87_s_fG5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[367])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[368] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_1F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[368])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 234};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[369] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_RvQ_d_whha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[369])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[370] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[370])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[371] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[371])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 281};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[372] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_typeattr_pxi, __pyx_mstate->__pyx_n_u_reset, __pyx_mstate->__pyx_kp_b_iso88591_A_RvQ_d_5_D_WHT_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[372])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[373] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[373])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[374] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[374])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[375] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[375])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[376] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[376])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[377] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[377])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[378] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[378])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[379] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[379])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[380] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[380])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 61};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_roles, __pyx_mstate->__pyx_n_u_stmt, __pyx_mstate->__pyx_n_u_count, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_genexpr};
    __pyx_mstate_global->__pyx_codeobj_tab[381] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_user_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_T_wat1_3aq_6_A_E_E_U_4q_IQd_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[381])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[382] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_it6_WD_Q_G1F_a_vWE_Q_q_t87_s, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[382])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[383] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[383])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[384] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[384])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[385] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[385])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[386] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[386])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[387] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[387])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[388] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_xencontext_pxi, __pyx_mstate->__pyx_n_u_post_init, __pyx_mstate->__pyx_kp_b_iso88591_A_4uBm5_4vR_A_A_9_t9TUUV_4uBm5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[388])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[389] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_xencontext_pxi, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_4uCt1_Qd_a_2Qd_hat5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[389])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 46};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[390] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_xencontext_pxi, __pyx_mstate->__pyx_n_u_post_init, __pyx_mstate->__pyx_kp_b_iso88591_A_4uBnE_D_b_a_A_7q_d_STTU_4uBnE, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[390])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 56};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[391] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_xencontext_pxi, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_4uCt1_Qd_a_2Qd_hat5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[391])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 82};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[392] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_xencontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_q_G1D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[392])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[393] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4vT_A_G1F_a_vWE_Q_q_t9G5_4vWE_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[393])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[394] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_1F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[394])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 102};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[395] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_xencontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_4wat1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[395])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[396] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_Jd_A_G1F_a_vWE_Q_q_t6_S_IWE_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[396])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[397] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[397])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 122};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[398] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_xencontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_1D_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[398])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[399] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4vT_a_G1F_a_vWE_Q_q_t9G5_4xwe, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[399])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[400] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[400])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 142};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[401] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_xencontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_at7_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[401])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[402] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4y_F_a_G1F_a_vWE_Q_q_t9G5_4xw, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[402])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[403] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[403])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 162};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[404] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_setools_policyrep_xencontext_pxi, __pyx_mstate->__pyx_n_u_statement, __pyx_mstate->__pyx_kp_b_iso88591_A_z_fAT, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[404])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[405] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4vT_t1_G1F_a_vWE_Q_q_t9G5_4uG, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[405])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[406] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_QfA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[406])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[407] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[407])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[408] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[408])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[409] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[409])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[410] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[410])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[411] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[411])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[412] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[412])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[413] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[413])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[414] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[414])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[415] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[415])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[416] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[416])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[417] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Boolean, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_1_7_N_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[417])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[418] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Conditional, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_haq_7_QnN_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[418])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[419] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_ConditionalOperat, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_haq_7_5Q6LNZ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[419])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[420] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Bounds, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_6_7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[420])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[421] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_BaseConstraint, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[421])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[422] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Constraint, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_XQa_7_A_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[422])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[423] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Validatetrans, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_q0_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[423])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[424] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_ConstraintExpress, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_xq_7_6a7Nn_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[424])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[425] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_ConstraintExprNod, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_XQa_7_4A5J_XY_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[425])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[426] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Context, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_1_7_N_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[426])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[427] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Default, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_1_7_N_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[427])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[428] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_DefaultRange, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_xq_7_a_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[428])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[429] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_FSUse, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_5_7_q_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[429])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[430] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_GenfsFiletype, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_q0_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[430])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[431] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Genfscon, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[431])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[432] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_InitialSID, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_XQa_7_A_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[432])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[433] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Category, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[433])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[434] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Sensitivity, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_haq_7_QnN_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[434])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[435] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_BaseMLSLevel, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_xq_7_a_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[435])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[436] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_LevelDecl, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_9HAQ_7_1L_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[436])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[437] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Level, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_5_7_q_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[437])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[438] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Range, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_5_7_q_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[438])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[439] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_MLSRule, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_1_7_N_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[439])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[440] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Ibendportcon, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_xq_7_a_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[440])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[441] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Ibpkeycon, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_9HAQ_7_1L_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[441])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[442] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Netifcon, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[442])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[443] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Nodecon, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_1_7_N_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[443])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[444] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Portcon, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_1_7_N_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[444])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[445] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Common, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_6_7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[445])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[446] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_ObjClass, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[446])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[447] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_PermissionVectorI, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_81A_7_VVdde_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[447])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[448] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_PolicyObject, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_xq_7_a_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[448])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[449] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_PolicySymbol, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_xq_7_a_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[449])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[450] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Ocontext, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[450])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[451] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_PolicyIterator, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[451])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[452] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_PolicyCapability, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_81A_7_2_3FnTU_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[452])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[453] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_RoleAllow, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_9HAQ_7_1L_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[453])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[454] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_RoleTransition, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[454])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[455] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Role, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_4xq_7_awnA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[455])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[456] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_PolicyRule, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_XQa_7_A_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[456])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[457] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_BaseTERule, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_XQa_7_A_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[457])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[458] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_AVRule, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_6_7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[458])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[459] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_XpermSet, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[459])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[460] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_IoctlSet, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[460])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[461] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_AVRuleXperm, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_haq_7_QnN_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[461])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[462] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_TERule, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_6_7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[462])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[463] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_FileNameTERule, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[463])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[464] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_BaseType, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[464])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[465] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Type, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_4xq_7_awnA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[465])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[466] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_TypeAttribute, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_q0_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[466])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[467] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_User, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_4xq_7_awnA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[467])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[468] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Devicetreecon, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_q0_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[468])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[469] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Iomemcon, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[469])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[470] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Ioportcon, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_9HAQ_7_1L_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[470])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[471] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Pcidevicecon, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_xq_7_a_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[471])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[472] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Pirqcon, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_1_7_N_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[472])) goto bad;
  }
  Py_DECREF(tuple_dedup_map);
  return 0;
  bad:
  Py_DECREF(tuple_dedup_map);
  return -1;
}
/* #### Code section: init_globals ### */

static int __Pyx_InitGlobals(void) {
  /* PythonCompatibility.init */
  if (likely(__Pyx_init_co_variables() == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* CommonTypesMetaclass.init */
  if (likely(__pyx_CommonTypesMetaclass_init(__pyx_m) == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* CachedMethodType.init */
  #if CYTHON_COMPILING_IN_LIMITED_API
  {
      PyObject *typesModule=NULL;
      typesModule = PyImport_ImportModule("types");
      if (typesModule) {
          __pyx_mstate_global->__Pyx_CachedMethodType = PyObject_GetAttrString(typesModule, "MethodType");
          Py_DECREF(typesModule);
      }
  } // error handling follows
  #endif
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* CythonFunctionShared.init */
  if (likely(__pyx_CyFunction_init(__pyx_m) == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* AssertionsEnabled.init */
  if (likely(__Pyx_init_assertions_enabled() == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* Generator.init */
  if (likely(__pyx_Generator_init(__pyx_m) == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: cleanup_globals ### */
/* #### Code section: cleanup_module ### */
/* #### Code section: main_method ### */
/* #### Code section: utility_code_pragmas ### */
#ifdef _MSC_VER
#pragma warning( push )
/* Warning 4127: conditional expression is constant
 * Cython uses constant conditional expressions to allow in inline functions to be optimized at
 * compile-time, so this warning is not useful
 */
#pragma warning( disable : 4127 )
#endif



/* #### Code section: utility_code_def ### */

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyErrExceptionMatches (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    int result;
    PyObject *exc_type;
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *current_exception = tstate->current_exception;
    if (unlikely(!current_exception)) return 0;
    exc_type = (PyObject*) Py_TYPE(current_exception);
    if (exc_type == err) return 1;
#else
    exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
#endif
    #if CYTHON_AVOID_BORROWED_REFS
    Py_INCREF(exc_type);
    #endif
    if (unlikely(PyTuple_Check(err))) {
        result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    } else {
        result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
    }
    #if CYTHON_AVOID_BORROWED_REFS
    Py_DECREF(exc_type);
    #endif
    return result;
}
#endif

/* PyErrFetchRestore (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *tmp_value;
    assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
    if (value) {
        #if CYTHON_COMPILING_IN_CPYTHON
        if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
        #endif
            PyException_SetTraceback(value, tb);
    }
    tmp_value = tstate->current_exception;
    tstate->current_exception = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
#else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#endif
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject* exc_value;
    exc_value = tstate->current_exception;
    tstate->current_exception = 0;
    *value = exc_value;
    *type = NULL;
    *tb = NULL;
    if (exc_value) {
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        #if CYTHON_COMPILING_IN_CPYTHON
        *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
        Py_XINCREF(*tb);
        #else
        *tb = PyException_GetTraceback(exc_value);
        #endif
    }
#else
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#endif
}
#endif

/* PyObjectGetAttrStr (used by PyObjectGetAttrStrNoError) */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* PyObjectGetAttrStrNoError (used by GetBuiltinName) */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        __Pyx_PyErr_Clear();
}
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
    PyObject *result;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
    return result;
#else
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
        return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
    }
#endif
    result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
    if (unlikely(!result)) {
        __Pyx_PyObject_GetAttrStr_ClearAttributeError();
    }
    return result;
#endif
}

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_mstate_global->__pyx_b, name);
    if (unlikely(!result) && !PyErr_Occurred()) {
        PyErr_Format(PyExc_NameError,
            "name '%U' is not defined", name);
    }
    return result;
}

/* TupleAndListFromArray (used by fastcall) */
#if !CYTHON_COMPILING_IN_CPYTHON && CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject *
__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    Py_ssize_t i;
    if (n <= 0) {
        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
    }
    res = PyTuple_New(n);
    if (unlikely(res == NULL)) return NULL;
    for (i = 0; i < n; i++) {
        if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < (0))) {
            Py_DECREF(res);
            return NULL;
        }
        Py_INCREF(src[i]);
    }
    return res;
}
#elif CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
    PyObject *v;
    Py_ssize_t i;
    for (i = 0; i < length; i++) {
        v = dest[i] = src[i];
        Py_INCREF(v);
    }
}
static CYTHON_INLINE PyObject *
__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
    }
    res = PyTuple_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
    return res;
}
static CYTHON_INLINE PyObject *
__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        return PyList_New(0);
    }
    res = PyList_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
    return res;
}
#endif

/* BytesEquals (used by UnicodeEquals) */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL ||\
        !(CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS)
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals (used by fastcall) */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length, length2;
        int kind;
        void *data1, *data2;
        #if !CYTHON_COMPILING_IN_LIMITED_API
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        #endif
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(length < 0)) return -1;
        #endif
        length2 = __Pyx_PyUnicode_GET_LENGTH(s2);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(length2 < 0)) return -1;
        #endif
        if (length != length2) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    return (equals == Py_EQ);
return_ne:
    return (equals == Py_NE);
#endif
}

/* fastcall */
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
{
    Py_ssize_t i, n = __Pyx_PyTuple_GET_SIZE(kwnames);
    #if !CYTHON_ASSUME_SAFE_SIZE
    if (unlikely(n == -1)) return NULL;
    #endif
    for (i = 0; i < n; i++)
    {
        PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!namei)) return NULL;
        #endif
        if (s == namei) return kwvalues[i];
    }
    for (i = 0; i < n; i++)
    {
        PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!namei)) return NULL;
        #endif
        int eq = __Pyx_PyUnicode_Equals(s, namei, Py_EQ);
        if (unlikely(eq != 0)) {
            if (unlikely(eq < 0)) return NULL;
            return kwvalues[i];
        }
    }
    return NULL;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
    Py_ssize_t i, nkwargs;
    PyObject *dict;
#if !CYTHON_ASSUME_SAFE_SIZE
    nkwargs = PyTuple_Size(kwnames);
    if (unlikely(nkwargs < 0)) return NULL;
#else
    nkwargs = PyTuple_GET_SIZE(kwnames);
#endif
    dict = PyDict_New();
    if (unlikely(!dict))
        return NULL;
    for (i=0; i<nkwargs; i++) {
#if !CYTHON_ASSUME_SAFE_MACROS
        PyObject *key = PyTuple_GetItem(kwnames, i);
        if (!key) goto bad;
#else
        PyObject *key = PyTuple_GET_ITEM(kwnames, i);
#endif
        if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
            goto bad;
    }
    return dict;
bad:
    Py_DECREF(dict);
    return NULL;
}
#endif
#endif

/* PyObjectCall (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = Py_TYPE(func)->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallMethO (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
    self = __Pyx_CyOrPyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectFastCall (used by PyObjectCallOneArg) */
#if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API
static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs) {
    PyObject *argstuple;
    PyObject *result = 0;
    size_t i;
    argstuple = PyTuple_New((Py_ssize_t)nargs);
    if (unlikely(!argstuple)) return NULL;
    for (i = 0; i < nargs; i++) {
        Py_INCREF(args[i]);
        if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) != (0)) goto bad;
    }
    result = __Pyx_PyObject_Call(func, argstuple, kwargs);
  bad:
    Py_DECREF(argstuple);
    return result;
}
#endif
#if CYTHON_VECTORCALL && !CYTHON_COMPILING_IN_LIMITED_API
  #if PY_VERSION_HEX < 0x03090000
    #define __Pyx_PyVectorcall_Function(callable) _PyVectorcall_Function(callable)
  #elif CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE vectorcallfunc __Pyx_PyVectorcall_Function(PyObject *callable) {
    PyTypeObject *tp = Py_TYPE(callable);
    #if defined(__Pyx_CyFunction_USED)
    if (__Pyx_CyFunction_CheckExact(callable)) {
        return __Pyx_CyFunction_func_vectorcall(callable);
    }
    #endif
    if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) {
        return NULL;
    }
    assert(PyCallable_Check(callable));
    Py_ssize_t offset = tp->tp_vectorcall_offset;
    assert(offset > 0);
    vectorcallfunc ptr;
    memcpy(&ptr, (char *) callable + offset, sizeof(ptr));
    return ptr;
}
  #else
    #define __Pyx_PyVectorcall_Function(callable) PyVectorcall_Function(callable)
  #endif
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject *const *args, size_t _nargs, PyObject *kwargs) {
    Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs);
#if CYTHON_COMPILING_IN_CPYTHON
    if (nargs == 0 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
            return __Pyx_PyObject_CallMethO(func, NULL);
    }
    else if (nargs == 1 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
            return __Pyx_PyObject_CallMethO(func, args[0]);
    }
#endif
    if (kwargs == NULL) {
        #if CYTHON_VECTORCALL
          #if CYTHON_COMPILING_IN_LIMITED_API
            return PyObject_Vectorcall(func, args, _nargs, NULL);
          #else
            vectorcallfunc f = __Pyx_PyVectorcall_Function(func);
            if (f) {
                return f(func, args, _nargs, NULL);
            }
          #endif
        #endif
    }
    if (nargs == 0) {
        return __Pyx_PyObject_Call(func, __pyx_mstate_global->__pyx_empty_tuple, kwargs);
    }
    #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs);
    #else
    return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
    #endif
}

/* PyObjectCallOneArg (used by CallUnboundCMethod0) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *args[2] = {NULL, arg};
    return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* UnpackUnboundCMethod (used by CallUnboundCMethod0) */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {
    PyObject *result;
    PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));
    if (unlikely(!selfless_args)) return NULL;
    result = PyObject_Call(method, selfless_args, kwargs);
    Py_DECREF(selfless_args);
    return result;
}
#elif CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03090000
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) {
        return _PyObject_Vectorcall
            (method, args ? args+1 : NULL, nargs ? nargs-1 : 0, kwnames);
}
#else
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) {
    return
#if PY_VERSION_HEX < 0x03090000
    _PyObject_Vectorcall
#else
    PyObject_Vectorcall
#endif
        (method, args ? args+1 : NULL, nargs ? (size_t) nargs-1 : 0, kwnames);
}
#endif
static PyMethodDef __Pyx_UnboundCMethod_Def = {
     "CythonUnboundCMethod",
     __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
     METH_VARARGS | METH_KEYWORDS,
#else
     METH_FASTCALL | METH_KEYWORDS,
#endif
     NULL
};
static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
    PyObject *method, *result=NULL;
    method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
    if (unlikely(!method))
        return -1;
    result = method;
#if CYTHON_COMPILING_IN_CPYTHON
    if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
    {
        PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
        target->func = descr->d_method->ml_meth;
        target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
    } else
#endif
#if CYTHON_COMPILING_IN_PYPY
#else
    if (PyCFunction_Check(method))
#endif
    {
        PyObject *self;
        int self_found;
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        self = PyObject_GetAttrString(method, "__self__");
        if (!self) {
            PyErr_Clear();
        }
#else
        self = PyCFunction_GET_SELF(method);
#endif
        self_found = (self && self != Py_None);
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        Py_XDECREF(self);
#endif
        if (self_found) {
            PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);
            if (unlikely(!unbound_method)) return -1;
            Py_DECREF(method);
            result = unbound_method;
        }
    }
#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    if (unlikely(target->method)) {
        Py_DECREF(result);
    } else
#endif
    target->method = result;
    return 0;
}

/* CallUnboundCMethod0 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
    if (likely(was_initialized == 2 && cfunc->func)) {
        if (likely(cfunc->flag == METH_NOARGS))
            return __Pyx_CallCFunction(cfunc, self, NULL);
        if (likely(cfunc->flag == METH_FASTCALL))
            return __Pyx_CallCFunctionFast(cfunc, self, NULL, 0);
        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, NULL, 0, NULL);
        if (likely(cfunc->flag == (METH_VARARGS | METH_KEYWORDS)))
            return __Pyx_CallCFunctionWithKeywords(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple, NULL);
        if (cfunc->flag == METH_VARARGS)
            return __Pyx_CallCFunction(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple);
        return __Pyx__CallUnboundCMethod0(cfunc, self);
    }
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    else if (unlikely(was_initialized == 1)) {
        __Pyx_CachedCFunction tmp_cfunc = {
#ifndef __cplusplus
            0
#endif
        };
        tmp_cfunc.type = cfunc->type;
        tmp_cfunc.method_name = cfunc->method_name;
        return __Pyx__CallUnboundCMethod0(&tmp_cfunc, self);
    }
#endif
    PyObject *result = __Pyx__CallUnboundCMethod0(cfunc, self);
    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
    return result;
}
#endif
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    PyObject *result;
    if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
    result = __Pyx_PyObject_CallOneArg(cfunc->method, self);
    return result;
}

/* py_dict_items (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_items, d);
}

/* py_dict_values (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_values, d);
}

/* OwnedDictNext (used by ParseKeywordsImpl) */
#if CYTHON_AVOID_BORROWED_REFS
static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue) {
    PyObject *next = NULL;
    if (!*ppos) {
        if (pvalue) {
            PyObject *dictview = pkey ? __Pyx_PyDict_Items(p) : __Pyx_PyDict_Values(p);
            if (unlikely(!dictview)) goto bad;
            *ppos = PyObject_GetIter(dictview);
            Py_DECREF(dictview);
        } else {
            *ppos = PyObject_GetIter(p);
        }
        if (unlikely(!*ppos)) goto bad;
    }
    next = PyIter_Next(*ppos);
    if (!next) {
        if (PyErr_Occurred()) goto bad;
        return 0;
    }
    if (pkey && pvalue) {
        *pkey = __Pyx_PySequence_ITEM(next, 0);
        if (unlikely(*pkey)) goto bad;
        *pvalue = __Pyx_PySequence_ITEM(next, 1);
        if (unlikely(*pvalue)) goto bad;
        Py_DECREF(next);
    } else if (pkey) {
        *pkey = next;
    } else {
        assert(pvalue);
        *pvalue = next;
    }
    return 1;
  bad:
    Py_XDECREF(next);
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
    PyErr_FormatUnraisable("Exception ignored in __Pyx_PyDict_NextRef");
#else
    PyErr_WriteUnraisable(__pyx_mstate_global->__pyx_n_u_Pyx_PyDict_NextRef);
#endif
    if (pkey) *pkey = NULL;
    if (pvalue) *pvalue = NULL;
    return 0;
}
#else // !CYTHON_AVOID_BORROWED_REFS
static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue) {
    int result = PyDict_Next(p, ppos, pkey, pvalue);
    if (likely(result == 1)) {
        if (pkey) Py_INCREF(*pkey);
        if (pvalue) Py_INCREF(*pvalue);
    }
    return result;
}
#endif

/* RaiseDoubleKeywords (used by ParseKeywordsImpl) */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
}

/* CallUnboundCMethod2 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {
    int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
    if (likely(was_initialized == 2 && cfunc->func)) {
        PyObject *args[2] = {arg1, arg2};
        if (cfunc->flag == METH_FASTCALL) {
            return __Pyx_CallCFunctionFast(cfunc, self, args, 2);
        }
        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, 2, NULL);
    }
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    else if (unlikely(was_initialized == 1)) {
        __Pyx_CachedCFunction tmp_cfunc = {
#ifndef __cplusplus
            0
#endif
        };
        tmp_cfunc.type = cfunc->type;
        tmp_cfunc.method_name = cfunc->method_name;
        return __Pyx__CallUnboundCMethod2(&tmp_cfunc, self, arg1, arg2);
    }
#endif
    PyObject *result = __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);
    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
    return result;
}
#endif
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){
    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_COMPILING_IN_CPYTHON
    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
        PyObject *result = NULL;
        PyObject *args = PyTuple_New(2);
        if (unlikely(!args)) return NULL;
        Py_INCREF(arg1);
        PyTuple_SET_ITEM(args, 0, arg1);
        Py_INCREF(arg2);
        PyTuple_SET_ITEM(args, 1, arg2);
        if (cfunc->flag & METH_KEYWORDS)
            result = __Pyx_CallCFunctionWithKeywords(cfunc, self, args, NULL);
        else
            result = __Pyx_CallCFunction(cfunc, self, args);
        Py_DECREF(args);
        return result;
    }
#endif
    {
        PyObject *args[4] = {NULL, self, arg1, arg2};
        return __Pyx_PyObject_FastCall(cfunc->method, args+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
    }
}

/* ParseKeywordsImpl (used by ParseKeywords) */
static int __Pyx_ValidateDuplicatePosArgs(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    const char* function_name)
{
    PyObject ** const *name = argnames;
    while (name != first_kw_arg) {
        PyObject *key = **name;
        int found = PyDict_Contains(kwds, key);
        if (unlikely(found)) {
            if (found == 1) __Pyx_RaiseDoubleKeywordsError(function_name, key);
            goto bad;
        }
        name++;
    }
    return 0;
bad:
    return -1;
}
#if CYTHON_USE_UNICODE_INTERNALS
static CYTHON_INLINE int __Pyx_UnicodeKeywordsEqual(PyObject *s1, PyObject *s2) {
    int kind;
    Py_ssize_t len = PyUnicode_GET_LENGTH(s1);
    if (len != PyUnicode_GET_LENGTH(s2)) return 0;
    kind = PyUnicode_KIND(s1);
    if (kind != PyUnicode_KIND(s2)) return 0;
    const void *data1 = PyUnicode_DATA(s1);
    const void *data2 = PyUnicode_DATA(s2);
    return (memcmp(data1, data2, (size_t) len * (size_t) kind) == 0);
}
#endif
static int __Pyx_MatchKeywordArg_str(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    PyObject ** const *name;
    #if CYTHON_USE_UNICODE_INTERNALS
    Py_hash_t key_hash = ((PyASCIIObject*)key)->hash;
    if (unlikely(key_hash == -1)) {
        key_hash = PyObject_Hash(key);
        if (unlikely(key_hash == -1))
            goto bad;
    }
    #endif
    name = first_kw_arg;
    while (*name) {
        PyObject *name_str = **name;
        #if CYTHON_USE_UNICODE_INTERNALS
        if (key_hash == ((PyASCIIObject*)name_str)->hash && __Pyx_UnicodeKeywordsEqual(name_str, key)) {
            *index_found = (size_t) (name - argnames);
            return 1;
        }
        #else
        #if CYTHON_ASSUME_SAFE_SIZE
        if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
        #endif
        {
            int cmp = PyUnicode_Compare(name_str, key);
            if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
            if (cmp == 0) {
                *index_found = (size_t) (name - argnames);
                return 1;
            }
        }
        #endif
        name++;
    }
    name = argnames;
    while (name != first_kw_arg) {
        PyObject *name_str = **name;
        #if CYTHON_USE_UNICODE_INTERNALS
        if (unlikely(key_hash == ((PyASCIIObject*)name_str)->hash)) {
            if (__Pyx_UnicodeKeywordsEqual(name_str, key))
                goto arg_passed_twice;
        }
        #else
        #if CYTHON_ASSUME_SAFE_SIZE
        if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
        #endif
        {
            if (unlikely(name_str == key)) goto arg_passed_twice;
            int cmp = PyUnicode_Compare(name_str, key);
            if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
            if (cmp == 0) goto arg_passed_twice;
        }
        #endif
        name++;
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
bad:
    return -1;
}
static int __Pyx_MatchKeywordArg_nostr(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    PyObject ** const *name;
    if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type;
    name = first_kw_arg;
    while (*name) {
        int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
        if (cmp == 1) {
            *index_found = (size_t) (name - argnames);
            return 1;
        }
        if (unlikely(cmp == -1)) goto bad;
        name++;
    }
    name = argnames;
    while (name != first_kw_arg) {
        int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
        if (unlikely(cmp != 0)) {
            if (cmp == 1) goto arg_passed_twice;
            else goto bad;
        }
        name++;
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
bad:
    return -1;
}
static CYTHON_INLINE int __Pyx_MatchKeywordArg(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    return likely(PyUnicode_CheckExact(key)) ?
        __Pyx_MatchKeywordArg_str(key, argnames, first_kw_arg, index_found, function_name) :
        __Pyx_MatchKeywordArg_nostr(key, argnames, first_kw_arg, index_found, function_name);
}
static void __Pyx_RejectUnknownKeyword(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    const char *function_name)
{
    #if CYTHON_AVOID_BORROWED_REFS
    PyObject *pos = NULL;
    #else
    Py_ssize_t pos = 0;
    #endif
    PyObject *key = NULL;
    __Pyx_BEGIN_CRITICAL_SECTION(kwds);
    while (
        #if CYTHON_AVOID_BORROWED_REFS
        __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL)
        #else
        PyDict_Next(kwds, &pos, &key, NULL)
        #endif
    ) {
        PyObject** const *name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (!*name) {
            size_t index_found = 0;
            int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
            if (cmp != 1) {
                if (cmp == 0) {
                    PyErr_Format(PyExc_TypeError,
                        "%s() got an unexpected keyword argument '%U'",
                        function_name, key);
                }
                #if CYTHON_AVOID_BORROWED_REFS
                Py_DECREF(key);
                #endif
                break;
            }
        }
        #if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(key);
        #endif
    }
    __Pyx_END_CRITICAL_SECTION();
    #if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(pos);
    #endif
    assert(PyErr_Occurred());
}
static int __Pyx_ParseKeywordDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    PyObject** const *name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    Py_ssize_t extracted = 0;
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
    if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
#endif
    name = first_kw_arg;
    while (*name && num_kwargs > extracted) {
        PyObject * key = **name;
        PyObject *value;
        int found = 0;
        #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
        found = PyDict_GetItemRef(kwds, key, &value);
        #else
        value = PyDict_GetItemWithError(kwds, key);
        if (value) {
            Py_INCREF(value);
            found = 1;
        } else {
            if (unlikely(PyErr_Occurred())) goto bad;
        }
        #endif
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
            extracted++;
        }
        name++;
    }
    if (num_kwargs > extracted) {
        if (ignore_unknown_kwargs) {
            if (unlikely(__Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name) == -1))
                goto bad;
        } else {
            __Pyx_RejectUnknownKeyword(kwds, argnames, first_kw_arg, function_name);
            goto bad;
        }
    }
    return 0;
bad:
    return -1;
}
static int __Pyx_ParseKeywordDictToDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject** const *name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    Py_ssize_t len;
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
    if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
#endif
    if (PyDict_Update(kwds2, kwds) < 0) goto bad;
    name = first_kw_arg;
    while (*name) {
        PyObject *key = **name;
        PyObject *value;
#if !CYTHON_COMPILING_IN_LIMITED_API && (PY_VERSION_HEX >= 0x030d00A2 || defined(PyDict_Pop))
        int found = PyDict_Pop(kwds2, key, &value);
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
        }
#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000
        int found = PyDict_GetItemRef(kwds2, key, &value);
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
            if (unlikely(PyDict_DelItem(kwds2, key) < 0)) goto bad;
        }
#else
    #if CYTHON_COMPILING_IN_CPYTHON
        value = _PyDict_Pop(kwds2, key, kwds2);
    #else
        value = __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_pop, kwds2, key, kwds2);
    #endif
        if (value == kwds2) {
            Py_DECREF(value);
        } else {
            if (unlikely(!value)) goto bad;
            values[name-argnames] = value;
        }
#endif
        name++;
    }
    len = PyDict_Size(kwds2);
    if (len > 0) {
        return __Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name);
    } else if (unlikely(len == -1)) {
        goto bad;
    }
    return 0;
bad:
    return -1;
}
static int __Pyx_ParseKeywordsTuple(
    PyObject *kwds,
    PyObject * const *kwvalues,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    PyObject *key = NULL;
    PyObject** const * name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    for (Py_ssize_t pos = 0; pos < num_kwargs; pos++) {
#if CYTHON_AVOID_BORROWED_REFS
        key = __Pyx_PySequence_ITEM(kwds, pos);
#else
        key = __Pyx_PyTuple_GET_ITEM(kwds, pos);
#endif
#if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!key)) goto bad;
#endif
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            PyObject *value = kwvalues[pos];
            values[name-argnames] = __Pyx_NewRef(value);
        } else {
            size_t index_found = 0;
            int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
            if (cmp == 1) {
                PyObject *value = kwvalues[pos];
                values[index_found] = __Pyx_NewRef(value);
            } else {
                if (unlikely(cmp == -1)) goto bad;
                if (kwds2) {
                    PyObject *value = kwvalues[pos];
                    if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
                } else if (!ignore_unknown_kwargs) {
                    goto invalid_keyword;
                }
            }
        }
        #if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(key);
        key = NULL;
        #endif
    }
    return 0;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    goto bad;
bad:
    #if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(key);
    #endif
    return -1;
}

/* ParseKeywords */
static int __Pyx_ParseKeywords(
    PyObject *kwds,
    PyObject * const *kwvalues,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds)))
        return __Pyx_ParseKeywordsTuple(kwds, kwvalues, argnames, kwds2, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
    else if (kwds2)
        return __Pyx_ParseKeywordDictToDict(kwds, argnames, kwds2, values, num_pos_args, function_name);
    else
        return __Pyx_ParseKeywordDict(kwds, argnames, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* PyDictVersioning (used by GetModuleGlobalName) */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(!__pyx_m)) {
        if (!PyErr_Occurred())
            PyErr_SetNone(PyExc_NameError);
        return NULL;
    }
    result = PyObject_GetAttr(__pyx_m, name);
    if (likely(result)) {
        return result;
    }
    PyErr_Clear();
#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    if (unlikely(__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, name, &result) == -1)) PyErr_Clear();
    __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return result;
    }
#else
    result = _PyDict_GetItem_KnownHash(__pyx_mstate_global->__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* PyObjectFastCallMethod */
#if !CYTHON_VECTORCALL || PY_VERSION_HEX < 0x03090000
static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf) {
    PyObject *result;
    PyObject *attr = PyObject_GetAttr(args[0], name);
    if (unlikely(!attr))
        return NULL;
    result = __Pyx_PyObject_FastCall(attr, args+1, nargsf - 1);
    Py_DECREF(attr);
    return result;
}
#endif

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (unlikely(!j)) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared) {
    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
#if CYTHON_ASSUME_SAFE_SIZE
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS)) {
        return __Pyx_PyList_GetItemRefFast(o, wrapped_i, unsafe_shared);
    } else
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        return __Pyx_NewRef(PyList_GET_ITEM(o, wrapped_i));
    }
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
#else
    (void)wraparound;
    (void)boundscheck;
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared) {
    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
#if CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        return __Pyx_NewRef(PyTuple_GET_ITEM(o, wrapped_i));
    }
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
#else
    (void)wraparound;
    (void)boundscheck;
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     int wraparound, int boundscheck, int unsafe_shared) {
    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)) {
            return __Pyx_PyList_GetItemRefFast(o, n, unsafe_shared);
        } else if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            return __Pyx_NewRef(PyList_GET_ITEM(o, n));
        }
    } else
    #if !CYTHON_AVOID_BORROWED_REFS
    if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            return __Pyx_NewRef(PyTuple_GET_ITEM(o, n));
        }
    } else
    #endif
#endif
#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY
    {
        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
        if (!is_list && mm && mm->mp_subscript) {
            PyObject *r, *key = PyLong_FromSsize_t(i);
            if (unlikely(!key)) return NULL;
            r = mm->mp_subscript(o, key);
            Py_DECREF(key);
            return r;
        }
        if (is_list || likely(sm && sm->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
                Py_ssize_t l = sm->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return sm->sq_item(o, i);
        }
    }
#else
    if (is_list || !PyMapping_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    (void)wraparound;
    (void)boundscheck;
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
}

/* ObjectGetItem */
#if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) {
    PyObject *runerr = NULL;
    Py_ssize_t key_value;
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        __Pyx_TypeName index_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(index));
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError,
            "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer", index_type_name);
        __Pyx_DECREF_TypeName(index_type_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) {
    __Pyx_TypeName obj_type_name;
    if (likely(PyType_Check(obj))) {
        PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_mstate_global->__pyx_n_u_class_getitem);
        if (!meth) {
            PyErr_Clear();
        } else {
            PyObject *result = __Pyx_PyObject_CallOneArg(meth, key);
            Py_DECREF(meth);
            return result;
        }
    }
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {
    PyTypeObject *tp = Py_TYPE(obj);
    PyMappingMethods *mm = tp->tp_as_mapping;
    PySequenceMethods *sm = tp->tp_as_sequence;
    if (likely(mm && mm->mp_subscript)) {
        return mm->mp_subscript(obj, key);
    }
    if (likely(sm && sm->sq_item)) {
        return __Pyx_PyObject_GetIndex(obj, key);
    }
    return __Pyx_PyObject_GetItem_Slow(obj, key);
}
#endif

/* GetTopmostException (used by SaveResetException) */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    PyObject *exc_value = exc_info->exc_value;
    if (exc_value == NULL || exc_value == Py_None) {
        *value = NULL;
        *type = NULL;
        *tb = NULL;
    } else {
        *value = exc_value;
        Py_INCREF(*value);
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        *tb = PyException_GetTraceback(exc_value);
    }
  #elif CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #endif
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    PyObject *tmp_value = exc_info->exc_value;
    exc_info->exc_value = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
  #else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
  #endif
}
#endif

/* GetException */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
#endif
{
    PyObject *local_type = NULL, *local_value, *local_tb = NULL;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if PY_VERSION_HEX >= 0x030C0000
    local_value = tstate->current_exception;
    tstate->current_exception = 0;
  #else
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
  #endif
#elif __PYX_LIMITED_VERSION_HEX > 0x030C0000
    local_value = PyErr_GetRaisedException();
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
#if __PYX_LIMITED_VERSION_HEX > 0x030C0000
    if (likely(local_value)) {
        local_type = (PyObject*) Py_TYPE(local_value);
        Py_INCREF(local_type);
        local_tb = PyException_GetTraceback(local_value);
    }
#else
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
#endif // __PYX_LIMITED_VERSION_HEX > 0x030C0000
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    #if CYTHON_USE_EXC_INFO_STACK
    {
        _PyErr_StackItem *exc_info = tstate->exc_info;
      #if PY_VERSION_HEX >= 0x030B00a4
        tmp_value = exc_info->exc_value;
        exc_info->exc_value = local_value;
        tmp_type = NULL;
        tmp_tb = NULL;
        Py_XDECREF(local_type);
        Py_XDECREF(local_tb);
      #else
        tmp_type = exc_info->exc_type;
        tmp_value = exc_info->exc_value;
        tmp_tb = exc_info->exc_traceback;
        exc_info->exc_type = local_type;
        exc_info->exc_value = local_value;
        exc_info->exc_traceback = local_tb;
      #endif
    }
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#elif __PYX_LIMITED_VERSION_HEX >= 0x030b0000
    PyErr_SetHandledException(local_value);
    Py_XDECREF(local_value);
    Py_XDECREF(local_type);
    Py_XDECREF(local_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
#if __PYX_LIMITED_VERSION_HEX <= 0x030C0000
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
#endif
}

/* PyObjectSetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
    return PyObject_SetAttr(obj, attr_name, value);
}
#endif

/* RaiseException */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if PY_VERSION_HEX >= 0x030C00A6
        PyException_SetTraceback(value, tb);
#elif CYTHON_FAST_THREAD_STATE
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#else
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}

/* WriteUnraisableException */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_PyThreadState_declare
    PyGILState_STATE state;
    if (nogil)
        state = PyGILState_Ensure();
    else state = (PyGILState_STATE)0;
    CYTHON_UNUSED_VAR(clineno);
    CYTHON_UNUSED_VAR(lineno);
    CYTHON_UNUSED_VAR(filename);
    CYTHON_MAYBE_UNUSED_VAR(nogil);
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(0);
    }
    ctx = PyUnicode_FromString(name);
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
    if (nogil)
        PyGILState_Release(state);
}

/* PyObjectFormat */
#if CYTHON_USE_UNICODE_WRITER
static PyObject* __Pyx_PyObject_Format(PyObject* obj, PyObject* format_spec) {
    int ret;
    _PyUnicodeWriter writer;
    if (likely(PyFloat_CheckExact(obj))) {
        _PyUnicodeWriter_Init(&writer);
        ret = _PyFloat_FormatAdvancedWriter(
            &writer,
            obj,
            format_spec, 0, PyUnicode_GET_LENGTH(format_spec));
    } else if (likely(PyLong_CheckExact(obj))) {
        _PyUnicodeWriter_Init(&writer);
        ret = _PyLong_FormatAdvancedWriter(
            &writer,
            obj,
            format_spec, 0, PyUnicode_GET_LENGTH(format_spec));
    } else {
        return PyObject_Format(obj, format_spec);
    }
    if (unlikely(ret == -1)) {
        _PyUnicodeWriter_Dealloc(&writer);
        return NULL;
    }
    return _PyUnicodeWriter_Finish(&writer);
}
#endif

/* RaiseUnexpectedTypeError */
static int
__Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj)
{
    __Pyx_TypeName obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME,
                 expected, obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* SwapException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_value = exc_info->exc_value;
    exc_info->exc_value = *value;
    if (tmp_value == NULL || tmp_value == Py_None) {
        Py_XDECREF(tmp_value);
        tmp_value = NULL;
        tmp_type = NULL;
        tmp_tb = NULL;
    } else {
        tmp_type = (PyObject*) Py_TYPE(tmp_value);
        Py_INCREF(tmp_type);
        #if CYTHON_COMPILING_IN_CPYTHON
        tmp_tb = ((PyBaseExceptionObject*) tmp_value)->traceback;
        Py_XINCREF(tmp_tb);
        #else
        tmp_tb = PyException_GetTraceback(tmp_value);
        #endif
    }
  #elif CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = *type;
    exc_info->exc_value = *value;
    exc_info->exc_traceback = *tb;
  #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = *type;
    tstate->exc_value = *value;
    tstate->exc_traceback = *tb;
  #endif
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
    PyErr_SetExcInfo(*type, *value, *tb);
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#endif

/* RejectKeywords */
static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds) {
    PyObject *key = NULL;
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds))) {
        key = __Pyx_PySequence_ITEM(kwds, 0);
    } else {
#if CYTHON_AVOID_BORROWED_REFS
        PyObject *pos = NULL;
#else
        Py_ssize_t pos = 0;
#endif
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
        if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return;
#endif
        __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL);
#if CYTHON_AVOID_BORROWED_REFS
        Py_XDECREF(pos);
#endif
    }
    if (likely(key)) {
        PyErr_Format(PyExc_TypeError,
            "%s() got an unexpected keyword argument '%U'",
            function_name, key);
        Py_DECREF(key);
    }
}

/* PyUnicode_Unicode */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj) {
    if (unlikely(obj == Py_None))
        obj = __pyx_mstate_global->__pyx_kp_u_None;
    return __Pyx_NewRef(obj);
}

/* PyObjectCallNoArg */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
    PyObject *arg[2] = {NULL, NULL};
    return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* JoinPyUnicode */
static PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char) {
#if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    PyObject *result_uval;
    int result_ukind, kind_shift;
    Py_ssize_t i, char_pos;
    void *result_udata;
    if (max_char > 1114111) max_char = 1114111;
    result_uval = PyUnicode_New(result_ulength, max_char);
    if (unlikely(!result_uval)) return NULL;
    result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND;
    kind_shift = (result_ukind == PyUnicode_4BYTE_KIND) ? 2 : result_ukind - 1;
    result_udata = PyUnicode_DATA(result_uval);
    assert(kind_shift == 2 || kind_shift == 1 || kind_shift == 0);
    if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - result_ulength < 0))
        goto overflow;
    char_pos = 0;
    for (i=0; i < value_count; i++) {
        int ukind;
        Py_ssize_t ulength;
        void *udata;
        PyObject *uval = values[i];
        #if !CYTHON_COMPILING_IN_LIMITED_API
        if (__Pyx_PyUnicode_READY(uval) == (-1))
            goto bad;
        #endif
        ulength = __Pyx_PyUnicode_GET_LENGTH(uval);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(ulength < 0)) goto bad;
        #endif
        if (unlikely(!ulength))
            continue;
        if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - ulength < char_pos))
            goto overflow;
        ukind = __Pyx_PyUnicode_KIND(uval);
        udata = __Pyx_PyUnicode_DATA(uval);
        if (ukind == result_ukind) {
            memcpy((char *)result_udata + (char_pos << kind_shift), udata, (size_t) (ulength << kind_shift));
        } else {
            #if PY_VERSION_HEX >= 0x030d0000
            if (unlikely(PyUnicode_CopyCharacters(result_uval, char_pos, uval, 0, ulength) < 0)) goto bad;
            #elif CYTHON_COMPILING_IN_CPYTHON || defined(_PyUnicode_FastCopyCharacters)
            _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength);
            #else
            Py_ssize_t j;
            for (j=0; j < ulength; j++) {
                Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j);
                __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar);
            }
            #endif
        }
        char_pos += ulength;
    }
    return result_uval;
overflow:
    PyErr_SetString(PyExc_OverflowError, "join() result is too long for a Python string");
bad:
    Py_DECREF(result_uval);
    return NULL;
#else
    Py_ssize_t i;
    PyObject *result = NULL;
    PyObject *value_tuple = PyTuple_New(value_count);
    if (unlikely(!value_tuple)) return NULL;
    CYTHON_UNUSED_VAR(max_char);
    CYTHON_UNUSED_VAR(result_ulength);
    for (i=0; i<value_count; i++) {
        if (__Pyx_PyTuple_SET_ITEM(value_tuple, i, values[i]) != (0)) goto bad;
        Py_INCREF(values[i]);
    }
    result = PyUnicode_Join(__pyx_mstate_global->__pyx_empty_unicode, value_tuple);
bad:
    Py_DECREF(value_tuple);
    return result;
#endif
}

/* GetAttr3 */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        return NULL;
    __Pyx_PyErr_Clear();
    Py_INCREF(d);
    return d;
}
#endif
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
    PyObject *r;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    int res = PyObject_GetOptionalAttr(o, n, &r);
    return (res != 0) ? r : __Pyx_NewRef(d);
#else
  #if CYTHON_USE_TYPE_SLOTS
    if (likely(PyUnicode_Check(n))) {
        r = __Pyx_PyObject_GetAttrStrNoError(o, n);
        if (unlikely(!r) && likely(!PyErr_Occurred())) {
            r = __Pyx_NewRef(d);
        }
        return r;
    }
  #endif
    r = PyObject_GetAttr(o, n);
    return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
#endif
}

/* ExtTypeTest */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    __Pyx_TypeName obj_type_name;
    __Pyx_TypeName type_name;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(__Pyx_TypeCheck(obj, type)))
        return 1;
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    type_name = __Pyx_PyType_GetFullyQualifiedName(type);
    PyErr_Format(PyExc_TypeError,
                 "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME,
                 obj_type_name, type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    __Pyx_DECREF_TypeName(type_name);
    return 0;
}

/* SetItemInt */
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
    int r;
    if (unlikely(!j)) return -1;
    r = PyObject_SetItem(o, j, v);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list,
                                               int wraparound, int boundscheck, int unsafe_shared) {
    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE && !CYTHON_AVOID_BORROWED_REFS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));
        if ((CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS && !__Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared))) {
            Py_INCREF(v);
            return PyList_SetItem(o, n, v);
        } else if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {
            PyObject* old;
            Py_INCREF(v);
            old = PyList_GET_ITEM(o, n);
            PyList_SET_ITEM(o, n, v);
            Py_DECREF(old);
            return 0;
        }
    } else
#endif
#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY
    {
        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
        if (!is_list && mm && mm->mp_ass_subscript) {
            int r;
            PyObject *key = PyLong_FromSsize_t(i);
            if (unlikely(!key)) return -1;
            r = mm->mp_ass_subscript(o, key, v);
            Py_DECREF(key);
            return r;
        }
        if (is_list || likely(sm && sm->sq_ass_item)) {
            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
                Py_ssize_t l = sm->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return -1;
                    PyErr_Clear();
                }
            }
            return sm->sq_ass_item(o, i, v);
        }
    }
#else
    if (is_list || !PyMapping_Check(o)) {
        return PySequence_SetItem(o, i, v);
    }
#endif
    (void)wraparound;
    (void)boundscheck;
    return __Pyx_SetItemInt_Generic(o, PyLong_FromSsize_t(i), v);
}

/* pyfrozenset_new */
static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it) {
    if (it) {
        PyObject* result;
#if CYTHON_COMPILING_IN_PYPY
        PyObject* args;
        args = PyTuple_Pack(1, it);
        if (unlikely(!args))
            return NULL;
        result = PyObject_Call((PyObject*)&PyFrozenSet_Type, args, NULL);
        Py_DECREF(args);
        return result;
#else
        if (PyFrozenSet_CheckExact(it)) {
            Py_INCREF(it);
            return it;
        }
        result = PyFrozenSet_New(it);
        if (unlikely(!result))
            return NULL;
        if ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000)
#if CYTHON_COMPILING_IN_LIMITED_API
            || __Pyx_get_runtime_version() >= 0x030A0000
#endif
            )
            return result;
        {
            Py_ssize_t size = __Pyx_PySet_GET_SIZE(result);
            if (likely(size > 0))
                return result;
#if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely(size < 0)) {
                Py_DECREF(result);
                return NULL;
            }
#endif
        }
        Py_DECREF(result);
#endif
    }
    return __Pyx_PyObject_CallNoArg((PyObject*) &PyFrozenSet_Type);
}

/* PyObjectGetMethod (used by PyObjectCallMethod0) */
#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    __Pyx_TypeName type_name;
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR
        if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (likely(descr != NULL)) {
        *method = descr;
        return 0;
    }
    type_name = __Pyx_PyType_GetFullyQualifiedName(tp);
    PyErr_Format(PyExc_AttributeError,
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
                 type_name, name);
    __Pyx_DECREF_TypeName(type_name);
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}
#endif

/* PyObjectCallMethod0 (used by pop) */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
#if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))
    PyObject *args[1] = {obj};
    (void) __Pyx_PyObject_CallOneArg;
    (void) __Pyx_PyObject_CallNoArg;
    return PyObject_VectorcallMethod(method_name, args, 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#else
    PyObject *method = NULL, *result = NULL;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_CallOneArg(method, obj);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) goto bad;
    result = __Pyx_PyObject_CallNoArg(method);
    Py_DECREF(method);
bad:
    return result;
#endif
}

/* pop */
static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L) {
    if (__Pyx_IS_TYPE(L, &PySet_Type)) {
        return PySet_Pop(L);
    }
    return __Pyx_PyObject_CallMethod0(L, __pyx_mstate_global->__pyx_n_u_pop);
}
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L) {
    if (likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) {
        __Pyx_SET_SIZE(L, Py_SIZE(L) - 1);
        return PyList_GET_ITEM(L, PyList_GET_SIZE(L));
    }
    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyList_Type_pop, L);
}
#endif

/* KeywordStringCheck */
static int __Pyx_CheckKeywordStrings(
    const char* function_name,
    PyObject *kw)
{
#if CYTHON_COMPILING_IN_PYPY && !defined(PyArg_ValidateKeywordArguments)
    CYTHON_UNUSED_VAR(function_name);
    CYTHON_UNUSED_VAR(kw);
    return 0;
#else
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kw))) {
#if PY_VERSION_HEX >= 0x03090000
        CYTHON_UNUSED_VAR(function_name);
#else
        Py_ssize_t kwsize;
        #if CYTHON_ASSUME_SAFE_SIZE
        kwsize = PyTuple_GET_SIZE(kw);
        #else
        kwsize = PyTuple_Size(kw);
        if (unlikely(kwsize < 0)) return -1;
        #endif
        for (Py_ssize_t pos = 0; pos < kwsize; pos++) {
            PyObject* key = NULL;
            #if CYTHON_ASSUME_SAFE_MACROS
            key = PyTuple_GET_ITEM(kw, pos);
            #else
            key = PyTuple_GetItem(kw, pos);
            if (unlikely(!key)) return -1;
            #endif
            if (unlikely(!PyUnicode_Check(key))) {
                PyErr_Format(PyExc_TypeError,
                    "%.200s() keywords must be strings", function_name);
                return -1;
            }
        }
#endif
    } else {
        if (unlikely(!PyArg_ValidateKeywordArguments(kw))) return -1;
    }
    return 0;
#endif
}

/* IterFinish (used by set_iter) */
static CYTHON_INLINE int __Pyx_IterFinish(void) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (unlikely(exc_type)) {
        if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return -1;
        __Pyx_PyErr_Clear();
        return 0;
    }
    return 0;
}

/* set_iter */
static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
                                                  Py_ssize_t* p_orig_length, int* p_source_is_set) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    is_set = is_set || likely(PySet_CheckExact(iterable) || PyFrozenSet_CheckExact(iterable));
    *p_source_is_set = is_set;
    if (likely(is_set)) {
        *p_orig_length = PySet_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
    }
#else
    CYTHON_UNUSED_VAR(is_set);
    *p_source_is_set = 0;
#endif
    *p_orig_length = 0;
    return PyObject_GetIter(iterable);
}
static CYTHON_INLINE int __Pyx_set_iter_next(
        PyObject* iter_obj, Py_ssize_t orig_length,
        Py_ssize_t* ppos, PyObject **value,
        int source_is_set) {
    if (!CYTHON_COMPILING_IN_CPYTHON || PY_VERSION_HEX >= 0x030d0000 || unlikely(!source_is_set)) {
        *value = PyIter_Next(iter_obj);
        if (unlikely(!*value)) {
            return __Pyx_IterFinish();
        }
        CYTHON_UNUSED_VAR(orig_length);
        CYTHON_UNUSED_VAR(ppos);
        return 1;
    }
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    if (unlikely(PySet_GET_SIZE(iter_obj) != orig_length)) {
        PyErr_SetString(
            PyExc_RuntimeError,
            "set changed size during iteration");
        return -1;
    }
    {
        Py_hash_t hash;
        int ret = _PySet_NextEntry(iter_obj, ppos, value, &hash);
        assert (ret != -1);
        if (likely(ret)) {
            Py_INCREF(*value);
            return 1;
        }
    }
#endif
    return 0;
}

/* PyObjectCall2Args (used by CallUnboundCMethod1) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args[3] = {NULL, arg1, arg2};
    return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* CallUnboundCMethod1 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) {
    int was_initialized =  __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
    if (likely(was_initialized == 2 && cfunc->func)) {
        int flag = cfunc->flag;
        if (flag == METH_O) {
            return __Pyx_CallCFunction(cfunc, self, arg);
        } else if (flag == METH_FASTCALL) {
            return __Pyx_CallCFunctionFast(cfunc, self, &arg, 1);
        } else if (flag == (METH_FASTCALL | METH_KEYWORDS)) {
            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, &arg, 1, NULL);
        }
    }
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    else if (unlikely(was_initialized == 1)) {
        __Pyx_CachedCFunction tmp_cfunc = {
#ifndef __cplusplus
            0
#endif
        };
        tmp_cfunc.type = cfunc->type;
        tmp_cfunc.method_name = cfunc->method_name;
        return __Pyx__CallUnboundCMethod1(&tmp_cfunc, self, arg);
    }
#endif
    PyObject* result = __Pyx__CallUnboundCMethod1(cfunc, self, arg);
    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
    return result;
}
#endif
static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){
    PyObject *result = NULL;
    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_COMPILING_IN_CPYTHON
    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
        PyObject *args = PyTuple_New(1);
        if (unlikely(!args)) return NULL;
        Py_INCREF(arg);
        PyTuple_SET_ITEM(args, 0, arg);
        if (cfunc->flag & METH_KEYWORDS)
            result = __Pyx_CallCFunctionWithKeywords(cfunc, self, args, NULL);
        else
            result = __Pyx_CallCFunction(cfunc, self, args);
        Py_DECREF(args);
    } else
#endif
    {
        result = __Pyx_PyObject_Call2Args(cfunc->method, self, arg);
    }
    return result;
}

/* dict_getitem_default */
static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) {
    PyObject* value;
#if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (unlikely(PyErr_Occurred()))
            return NULL;
        value = default_value;
    }
    Py_INCREF(value);
    if ((1));
#else
    if (PyBytes_CheckExact(key) || PyUnicode_CheckExact(key) || PyLong_CheckExact(key)) {
        value = PyDict_GetItem(d, key);
        if (unlikely(!value)) {
            value = default_value;
        }
        Py_INCREF(value);
    }
#endif
    else {
        if (default_value == Py_None)
            value = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_get, d, key);
        else
            value = __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_get, d, key, default_value);
    }
    return value;
}

/* DictGetItem */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    if (unlikely(__Pyx_PyDict_GetItemRef(d, key, &value) == 0)) { // no value, no error
        if (unlikely(PyTuple_Check(key))) {
            PyObject* args = PyTuple_Pack(1, key);
            if (likely(args)) {
                PyErr_SetObject(PyExc_KeyError, args);
                Py_DECREF(args);
            }
        } else {
            PyErr_SetObject(PyExc_KeyError, key);
        }
    }
    return value;
}
#endif

/* RaiseUnboundLocalError */
static void __Pyx_RaiseUnboundLocalError(const char *varname) {
    PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
}

/* pep479 */
static void __Pyx_Generator_Replace_StopIteration(int in_async_gen) {
    PyObject *exc, *val, *tb, *cur_exc, *new_exc;
    __Pyx_PyThreadState_declare
    int is_async_stopiteration = 0;
    CYTHON_MAYBE_UNUSED_VAR(in_async_gen);
    __Pyx_PyThreadState_assign
    cur_exc = __Pyx_PyErr_CurrentExceptionType();
    if (likely(!__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopIteration))) {
        if (in_async_gen && unlikely(__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopAsyncIteration))) {
            is_async_stopiteration = 1;
        } else {
            return;
        }
    }
    __Pyx_GetException(&exc, &val, &tb);
    Py_XDECREF(exc);
    Py_XDECREF(tb);
    new_exc = PyObject_CallFunction(PyExc_RuntimeError, "s",
        is_async_stopiteration ? "async generator raised StopAsyncIteration" :
        in_async_gen ? "async generator raised StopIteration" :
        "generator raised StopIteration");
    if (!new_exc) {
        Py_XDECREF(val);
        return;
    }
    PyException_SetCause(new_exc, val); // steals ref to val
    PyErr_SetObject(PyExc_RuntimeError, new_exc);
}

/* PyObjectVectorCallKwBuilder */
#if CYTHON_VECTORCALL
static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    (void)__Pyx_PyObject_FastCallDict;
    if (__Pyx_PyTuple_SET_ITEM(builder, n, key) != (0)) return -1;
    Py_INCREF(key);
    args[n] = value;
    return 0;
}
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    (void)__Pyx_VectorcallBuilder_AddArgStr;
    if (unlikely(!PyUnicode_Check(key))) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        return -1;
    }
    return __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n);
}
static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    PyObject *pyKey = PyUnicode_FromString(key);
    if (!pyKey) return -1;
    return __Pyx_VectorcallBuilder_AddArg(pyKey, value, builder, args, n);
}
#else // CYTHON_VECTORCALL
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, CYTHON_UNUSED PyObject **args, CYTHON_UNUSED int n) {
    if (unlikely(!PyUnicode_Check(key))) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        return -1;
    }
    return PyDict_SetItem(builder, key, value);
}
#endif

/* RaiseTooManyValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* UnpackItemEndCheck */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    }
    return __Pyx_IterFinish();
}

/* UnicodeConcatInPlace */
# if CYTHON_COMPILING_IN_CPYTHON
static int
__Pyx_unicode_modifiable(PyObject *unicode, int unsafe_shared)
{
    if (!__Pyx_IS_UNIQUELY_REFERENCED(unicode, unsafe_shared))
        return 0;
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030F0000
    if (PyUnstable_Unicode_GET_CACHED_HASH(unicode) != -1)
        return 0;
#endif
    if (!PyUnicode_CheckExact(unicode))
        return 0;
    if (PyUnicode_CHECK_INTERNED(unicode))
        return 0;
    return 1;
}
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_ConcatInPlaceImpl(PyObject **p_left, PyObject *right, int unsafe_shared
        #if CYTHON_REFNANNY
        , void* __pyx_refnanny
        #endif
    ) {
    PyObject *left = *p_left;
    Py_ssize_t left_len, right_len, new_len;
    if (unlikely(__Pyx_PyUnicode_READY(left) == -1))
        return NULL;
    if (unlikely(__Pyx_PyUnicode_READY(right) == -1))
        return NULL;
    left_len = PyUnicode_GET_LENGTH(left);
    if (left_len == 0) {
        Py_INCREF(right);
        return right;
    }
    right_len = PyUnicode_GET_LENGTH(right);
    if (right_len == 0) {
        Py_INCREF(left);
        return left;
    }
    if (unlikely(left_len > PY_SSIZE_T_MAX - right_len)) {
        PyErr_SetString(PyExc_OverflowError,
                        "strings are too large to concat");
        return NULL;
    }
    new_len = left_len + right_len;
    if (__Pyx_unicode_modifiable(left, unsafe_shared)
            && PyUnicode_CheckExact(right)
            && PyUnicode_KIND(right) <= PyUnicode_KIND(left)
            && !(PyUnicode_IS_ASCII(left) && !PyUnicode_IS_ASCII(right))) {
        int ret;
        __Pyx_GIVEREF(*p_left);
        ret = PyUnicode_Resize(p_left, new_len);
        __Pyx_GOTREF(*p_left);
        if (unlikely(ret != 0))
            return NULL;
        #if PY_VERSION_HEX >= 0x030d0000
        if (unlikely(PyUnicode_CopyCharacters(*p_left, left_len, right, 0, right_len) < 0)) return NULL;
        #else
        _PyUnicode_FastCopyCharacters(*p_left, left_len, right, 0, right_len);
        #endif
        __Pyx_INCREF(*p_left);
        __Pyx_GIVEREF(*p_left);
        return *p_left;
    } else {
        return __Pyx_PyUnicode_Concat(left, right);
    }
  }
#endif

/* CalculateMetaclass (used by Py3ClassCreate) */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
    Py_ssize_t i, nbases;
#if CYTHON_ASSUME_SAFE_SIZE
    nbases = PyTuple_GET_SIZE(bases);
#else
    nbases = PyTuple_Size(bases);
    if (nbases < 0) return NULL;
#endif
    for (i=0; i < nbases; i++) {
        PyTypeObject *tmptype;
#if CYTHON_ASSUME_SAFE_MACROS
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *tmp = PyTuple_GetItem(bases, i);
        if (!tmp) return NULL;
#endif
        tmptype = Py_TYPE(tmp);
        if (!metaclass) {
            metaclass = tmptype;
            continue;
        }
        if (PyType_IsSubtype(metaclass, tmptype))
            continue;
        if (PyType_IsSubtype(tmptype, metaclass)) {
            metaclass = tmptype;
            continue;
        }
        PyErr_SetString(PyExc_TypeError,
                        "metaclass conflict: "
                        "the metaclass of a derived class "
                        "must be a (non-strict) subclass "
                        "of the metaclasses of all its bases");
        return NULL;
    }
    if (!metaclass) {
        metaclass = &PyType_Type;
    }
    Py_INCREF((PyObject*) metaclass);
    return (PyObject*) metaclass;
}

/* PyObjectLookupSpecial (used by Py3ClassCreate) */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) {
    PyObject *res;
    PyTypeObject *tp = Py_TYPE(obj);
    res = _PyType_Lookup(tp, attr_name);
    if (likely(res)) {
        descrgetfunc f = Py_TYPE(res)->tp_descr_get;
        if (!f) {
            Py_INCREF(res);
        } else {
            res = f(res, obj, (PyObject *)tp);
        }
    } else if (with_error) {
        PyErr_SetObject(PyExc_AttributeError, attr_name);
    }
    return res;
}
#endif

/* Py3ClassCreate */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
    PyObject *ns;
    if (metaclass) {
        PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_mstate_global->__pyx_n_u_prepare);
        if (prep) {
            PyObject *pargs[3] = {NULL, name, bases};
            ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
            Py_DECREF(prep);
        } else {
            if (unlikely(PyErr_Occurred()))
                return NULL;
            ns = PyDict_New();
        }
    } else {
        ns = PyDict_New();
    }
    if (unlikely(!ns))
        return NULL;
    if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_module, modname) < 0)) goto bad;
    if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_qualname, qualname) < 0)) goto bad;
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_doc, doc) < 0)) goto bad;
    return ns;
bad:
    Py_DECREF(ns);
    return NULL;
}
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
                                      PyObject *dict, PyObject *mkw,
                                      int calculate_metaclass, int allow_py2_metaclass) {
    PyObject *result;
    PyObject *owned_metaclass = NULL;
    PyObject *margs[4] = {NULL, name, bases, dict};
    if (allow_py2_metaclass) {
        owned_metaclass = PyObject_GetItem(dict, __pyx_mstate_global->__pyx_n_u_metaclass);
        if (owned_metaclass) {
            metaclass = owned_metaclass;
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
            PyErr_Clear();
        } else {
            return NULL;
        }
    }
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
        Py_XDECREF(owned_metaclass);
        if (unlikely(!metaclass))
            return NULL;
        owned_metaclass = metaclass;
    }
    result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
    Py_XDECREF(owned_metaclass);
    return result;
}

/* dict_setdefault (used by FetchCommonType) */
static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value) {
    PyObject* value;
#if __PYX_LIMITED_VERSION_HEX >= 0x030F0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4)
    PyDict_SetDefaultRef(d, key, default_value, &value);
#elif CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    PyObject *args[] = {d, key, default_value};
    value = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_n_u_setdefault, args, 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#elif CYTHON_COMPILING_IN_LIMITED_API
    value = PyObject_CallMethodObjArgs(d, __pyx_mstate_global->__pyx_n_u_setdefault, key, default_value, NULL);
#else
    value = PyDict_SetDefault(d, key, default_value);
    if (unlikely(!value)) return NULL;
    Py_INCREF(value);
#endif
    return value;
}

/* LimitedApiGetTypeDict (used by SetItemOnTypeDict) */
#if CYTHON_COMPILING_IN_LIMITED_API
static Py_ssize_t __Pyx_GetTypeDictOffset(void) {
    PyObject *tp_dictoffset_o;
    Py_ssize_t tp_dictoffset;
    tp_dictoffset_o = PyObject_GetAttrString((PyObject*)(&PyType_Type), "__dictoffset__");
    if (unlikely(!tp_dictoffset_o)) return -1;
    tp_dictoffset = PyLong_AsSsize_t(tp_dictoffset_o);
    Py_DECREF(tp_dictoffset_o);
    if (unlikely(tp_dictoffset == 0)) {
        PyErr_SetString(
            PyExc_TypeError,
            "'type' doesn't have a dictoffset");
        return -1;
    } else if (unlikely(tp_dictoffset < 0)) {
        PyErr_SetString(
            PyExc_TypeError,
            "'type' has an unexpected negative dictoffset. "
            "Please report this as Cython bug");
        return -1;
    }
    return tp_dictoffset;
}
static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp) {
    static Py_ssize_t tp_dictoffset = 0;
    if (unlikely(tp_dictoffset == 0)) {
        tp_dictoffset = __Pyx_GetTypeDictOffset();
        if (unlikely(tp_dictoffset == -1 && PyErr_Occurred())) {
            tp_dictoffset = 0; // try again next time?
            return NULL;
        }
    }
    return *(PyObject**)((char*)tp + tp_dictoffset);
}
#endif

/* SetItemOnTypeDict (used by FixUpExtensionType) */
static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v) {
    int result;
    PyObject *tp_dict;
#if CYTHON_COMPILING_IN_LIMITED_API
    tp_dict = __Pyx_GetTypeDict(tp);
    if (unlikely(!tp_dict)) return -1;
#else
    tp_dict = tp->tp_dict;
#endif
    result = PyDict_SetItem(tp_dict, k, v);
    if (likely(!result)) {
        PyType_Modified(tp);
        if (unlikely(PyObject_HasAttr(v, __pyx_mstate_global->__pyx_n_u_set_name))) {
            PyObject *setNameResult = PyObject_CallMethodObjArgs(v, __pyx_mstate_global->__pyx_n_u_set_name,  (PyObject *) tp, k, NULL);
            if (!setNameResult) return -1;
            Py_DECREF(setNameResult);
        }
    }
    return result;
}

/* FixUpExtensionType (used by FetchCommonType) */
static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {
#if __PYX_LIMITED_VERSION_HEX > 0x030900B1
    CYTHON_UNUSED_VAR(spec);
    CYTHON_UNUSED_VAR(type);
    CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);
#else
    const PyType_Slot *slot = spec->slots;
    int changed = 0;
#if !CYTHON_COMPILING_IN_LIMITED_API
    while (slot && slot->slot && slot->slot != Py_tp_members)
        slot++;
    if (slot && slot->slot == Py_tp_members) {
#if !CYTHON_COMPILING_IN_CPYTHON
        const
#endif  // !CYTHON_COMPILING_IN_CPYTHON)
            PyMemberDef *memb = (PyMemberDef*) slot->pfunc;
        while (memb && memb->name) {
            if (memb->name[0] == '_' && memb->name[1] == '_') {
                if (strcmp(memb->name, "__weaklistoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_weaklistoffset = memb->offset;
                    changed = 1;
                }
                else if (strcmp(memb->name, "__dictoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_dictoffset = memb->offset;
                    changed = 1;
                }
#if CYTHON_METH_FASTCALL
                else if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_vectorcall_offset = memb->offset;
                    changed = 1;
                }
#endif  // CYTHON_METH_FASTCALL
#if !CYTHON_COMPILING_IN_PYPY
                else if (strcmp(memb->name, "__module__") == 0) {
                    PyObject *descr;
                    assert(memb->type == T_OBJECT);
                    assert(memb->flags == 0 || memb->flags == READONLY);
                    descr = PyDescr_NewMember(type, memb);
                    if (unlikely(!descr))
                        return -1;
                    int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr);
                    Py_DECREF(descr);
                    if (unlikely(set_item_result < 0)) {
                        return -1;
                    }
                    changed = 1;
                }
#endif  // !CYTHON_COMPILING_IN_PYPY
            }
            memb++;
        }
    }
#endif  // !CYTHON_COMPILING_IN_LIMITED_API
#if !CYTHON_COMPILING_IN_PYPY
    slot = spec->slots;
    while (slot && slot->slot && slot->slot != Py_tp_getset)
        slot++;
    if (slot && slot->slot == Py_tp_getset) {
        PyGetSetDef *getset = (PyGetSetDef*) slot->pfunc;
        while (getset && getset->name) {
            if (getset->name[0] == '_' && getset->name[1] == '_' && strcmp(getset->name, "__module__") == 0) {
                PyObject *descr = PyDescr_NewGetSet(type, getset);
                if (unlikely(!descr))
                    return -1;
                #if CYTHON_COMPILING_IN_LIMITED_API
                PyObject *pyname = PyUnicode_FromString(getset->name);
                if (unlikely(!pyname)) {
                    Py_DECREF(descr);
                    return -1;
                }
                int set_item_result = __Pyx_SetItemOnTypeDict(type, pyname, descr);
                Py_DECREF(pyname);
                #else
                CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);
                int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr);
                #endif
                Py_DECREF(descr);
                if (unlikely(set_item_result < 0)) {
                    return -1;
                }
                changed = 1;
            }
            ++getset;
        }
    }
#else
    CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);
#endif  // !CYTHON_COMPILING_IN_PYPY
    if (changed)
        PyType_Modified(type);
#endif  // PY_VERSION_HEX > 0x030900B1
    return 0;
}

/* AddModuleRef (used by FetchSharedCythonModule) */
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
  static PyObject *__Pyx_PyImport_AddModuleObjectRef(PyObject *name) {
      PyObject *module_dict = PyImport_GetModuleDict();
      PyObject *m;
      if (PyMapping_GetOptionalItem(module_dict, name, &m) < 0) {
          return NULL;
      }
      if (m != NULL && PyModule_Check(m)) {
          return m;
      }
      Py_XDECREF(m);
      m = PyModule_NewObject(name);
      if (m == NULL)
          return NULL;
      if (PyDict_CheckExact(module_dict)) {
          PyObject *new_m;
          (void)PyDict_SetDefaultRef(module_dict, name, m, &new_m);
          Py_DECREF(m);
          return new_m;
      } else {
           if (PyObject_SetItem(module_dict, name, m) != 0) {
                Py_DECREF(m);
                return NULL;
            }
            return m;
      }
  }
  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
      PyObject *py_name = PyUnicode_FromString(name);
      if (!py_name) return NULL;
      PyObject *module = __Pyx_PyImport_AddModuleObjectRef(py_name);
      Py_DECREF(py_name);
      return module;
  }
#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000
  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
#else
  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
      PyObject *module = PyImport_AddModule(name);
      Py_XINCREF(module);
      return module;
  }
#endif

/* FetchSharedCythonModule (used by FetchCommonType) */
static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
    return __Pyx_PyImport_AddModuleRef(__PYX_ABI_MODULE_NAME);
}

/* FetchCommonType (used by CommonTypesMetaclass) */
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
static PyObject* __Pyx_PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
    PyObject *result = __Pyx_PyType_FromModuleAndSpec(module, spec, bases);
    if (result && metaclass) {
        PyObject *old_tp = (PyObject*)Py_TYPE(result);
    Py_INCREF((PyObject*)metaclass);
#if __PYX_LIMITED_VERSION_HEX >= 0x03090000
        Py_SET_TYPE(result, metaclass);
#else
        result->ob_type = metaclass;
#endif
        Py_DECREF(old_tp);
    }
    return result;
}
#else
#define __Pyx_PyType_FromMetaclass(me, mo, s, b) PyType_FromMetaclass(me, mo, s, b)
#endif
static int __Pyx_VerifyCachedType(PyObject *cached_type,
                               const char *name,
                               Py_ssize_t expected_basicsize) {
    Py_ssize_t basicsize;
    if (!PyType_Check(cached_type)) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s is not a type object", name);
        return -1;
    }
    if (expected_basicsize == 0) {
        return 0; // size is inherited, nothing useful to check
    }
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_basicsize;
    py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
    if (unlikely(!py_basicsize)) return -1;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = NULL;
    if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) return -1;
#else
    basicsize = ((PyTypeObject*) cached_type)->tp_basicsize;
#endif
    if (basicsize != expected_basicsize) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s has the wrong size, try recompiling",
            name);
        return -1;
    }
    return 0;
}
static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
    PyObject *abi_module = NULL, *cached_type = NULL, *abi_module_dict, *new_cached_type, *py_object_name;
    int get_item_ref_result;
    const char* object_name = strrchr(spec->name, '.');
    object_name = object_name ? object_name+1 : spec->name;
    py_object_name = PyUnicode_FromString(object_name);
    if (!py_object_name) return NULL;
    abi_module = __Pyx_FetchSharedCythonABIModule();
    if (!abi_module) goto done;
    abi_module_dict = PyModule_GetDict(abi_module);
    if (!abi_module_dict) goto done;
    get_item_ref_result = __Pyx_PyDict_GetItemRef(abi_module_dict, py_object_name, &cached_type);
    if (get_item_ref_result == 1) {
        if (__Pyx_VerifyCachedType(
              cached_type,
              object_name,
              spec->basicsize) < 0) {
            goto bad;
        }
        goto done;
    } else if (unlikely(get_item_ref_result == -1)) {
        goto bad;
    }
    cached_type = __Pyx_PyType_FromMetaclass(
        metaclass,
        CYTHON_USE_MODULE_STATE ? module : abi_module,
        spec, bases);
    if (unlikely(!cached_type)) goto bad;
    if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
    new_cached_type = __Pyx_PyDict_SetDefault(abi_module_dict, py_object_name, cached_type);
    if (unlikely(new_cached_type != cached_type)) {
        if (unlikely(!new_cached_type)) goto bad;
        Py_DECREF(cached_type);
        cached_type = new_cached_type;
        if (__Pyx_VerifyCachedType(
                cached_type,
                object_name,
                spec->basicsize) < 0) {
            goto bad;
        }
        goto done;
    } else {
        Py_DECREF(new_cached_type);
    }
done:
    Py_XDECREF(abi_module);
    Py_DECREF(py_object_name);
    assert(cached_type == NULL || PyType_Check(cached_type));
    return (PyTypeObject *) cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}

/* CommonTypesMetaclass (used by CythonFunctionShared) */
static PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
    return PyUnicode_FromString(__PYX_ABI_MODULE_NAME);
}
#if __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject* __pyx_CommonTypesMetaclass_call(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *args, CYTHON_UNUSED PyObject *kwds) {
    PyErr_SetString(PyExc_TypeError, "Cannot instantiate Cython internal types");
    return NULL;
}
static int __pyx_CommonTypesMetaclass_setattr(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *attr, CYTHON_UNUSED PyObject *value) {
    PyErr_SetString(PyExc_TypeError, "Cython internal types are immutable");
    return -1;
}
#endif
static PyGetSetDef __pyx_CommonTypesMetaclass_getset[] = {
    {"__module__", __pyx_CommonTypesMetaclass_get_module, NULL, NULL, NULL},
    {0, 0, 0, 0, 0}
};
static PyType_Slot __pyx_CommonTypesMetaclass_slots[] = {
    {Py_tp_getset, (void *)__pyx_CommonTypesMetaclass_getset},
    #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
    {Py_tp_call, (void*)__pyx_CommonTypesMetaclass_call},
    {Py_tp_new, (void*)__pyx_CommonTypesMetaclass_call},
    {Py_tp_setattro, (void*)__pyx_CommonTypesMetaclass_setattr},
    #endif
    {0, 0}
};
static PyType_Spec __pyx_CommonTypesMetaclass_spec = {
    __PYX_TYPE_MODULE_PREFIX "_common_types_metatype",
    0,
    0,
    Py_TPFLAGS_IMMUTABLETYPE |
    Py_TPFLAGS_DISALLOW_INSTANTIATION |
    Py_TPFLAGS_DEFAULT,
    __pyx_CommonTypesMetaclass_slots
};
static int __pyx_CommonTypesMetaclass_init(PyObject *module) {
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
    PyObject *bases = PyTuple_Pack(1, &PyType_Type);
    if (unlikely(!bases)) {
        return -1;
    }
    mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);
    Py_DECREF(bases);
    if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {
        return -1;
    }
    return 0;
}

/* CallTypeTraverse (used by CythonFunctionShared) */
#if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000)
#else
static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg) {
    #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x03090000
    if (__Pyx_get_runtime_version() < 0x03090000) return 0;
    #endif
    if (!always_call) {
        PyTypeObject *base = __Pyx_PyObject_GetSlot(o, tp_base, PyTypeObject*);
        unsigned long flags = PyType_GetFlags(base);
        if (flags & Py_TPFLAGS_HEAPTYPE) {
            return 0;
        }
    }
    Py_VISIT((PyObject*)Py_TYPE(o));
    return 0;
}
#endif

/* PyMethodNew (used by CythonFunctionShared) */
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    PyObject *result;
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    #if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    {
        PyObject *args[] = {func, self};
        result = PyObject_Vectorcall(__pyx_mstate_global->__Pyx_CachedMethodType, args, 2, NULL);
    }
    #else
    result = PyObject_CallFunctionObjArgs(__pyx_mstate_global->__Pyx_CachedMethodType, func, self, NULL);
    #endif
    return result;
}
#else
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    return PyMethod_New(func, self);
}
#endif

/* PyVectorcallFastCallDict (used by CythonFunctionShared) */
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    PyObject *res = NULL;
    PyObject *kwnames;
    PyObject **newargs;
    PyObject **kwvalues;
    Py_ssize_t i;
    #if CYTHON_AVOID_BORROWED_REFS
    PyObject *pos;
    #else
    Py_ssize_t pos;
    #endif
    size_t j;
    PyObject *key, *value;
    unsigned long keys_are_strings;
    #if !CYTHON_ASSUME_SAFE_SIZE
    Py_ssize_t nkw = PyDict_Size(kw);
    if (unlikely(nkw == -1)) return NULL;
    #else
    Py_ssize_t nkw = PyDict_GET_SIZE(kw);
    #endif
    newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
    if (unlikely(newargs == NULL)) {
        PyErr_NoMemory();
        return NULL;
    }
    for (j = 0; j < nargs; j++) newargs[j] = args[j];
    kwnames = PyTuple_New(nkw);
    if (unlikely(kwnames == NULL)) {
        PyMem_Free(newargs);
        return NULL;
    }
    kwvalues = newargs + nargs;
    pos = 0;
    i = 0;
    keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
    while (__Pyx_PyDict_NextRef(kw, &pos, &key, &value)) {
        keys_are_strings &=
        #if CYTHON_COMPILING_IN_LIMITED_API
            PyType_GetFlags(Py_TYPE(key));
        #else
            Py_TYPE(key)->tp_flags;
        #endif
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(PyTuple_SetItem(kwnames, i, key) < 0)) goto cleanup;
        #else
        PyTuple_SET_ITEM(kwnames, i, key);
        #endif
        kwvalues[i] = value;
        i++;
    }
    if (unlikely(!keys_are_strings)) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        goto cleanup;
    }
    res = vc(func, newargs, nargs, kwnames);
cleanup:
    #if CYTHON_AVOID_BORROWED_REFS
    Py_DECREF(pos);
    #endif
    Py_DECREF(kwnames);
    for (i = 0; i < nkw; i++)
        Py_DECREF(kwvalues[i]);
    PyMem_Free(newargs);
    return res;
}
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    Py_ssize_t kw_size =
        likely(kw == NULL) ?
        0 :
#if !CYTHON_ASSUME_SAFE_SIZE
        PyDict_Size(kw);
#else
        PyDict_GET_SIZE(kw);
#endif
    if (kw_size == 0) {
        return vc(func, args, nargs, NULL);
    }
#if !CYTHON_ASSUME_SAFE_SIZE
    else if (unlikely(kw_size == -1)) {
        return NULL;
    }
#endif
    return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
}
#endif

/* CythonFunctionShared (used by CythonFunction) */
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunctionNoMethod(PyObject *func, void (*cfunc)(void)) {
    if (__Pyx_CyFunction_Check(func)) {
        return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc;
    } else if (PyCFunction_Check(func)) {
        return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
    if ((PyObject*)Py_TYPE(func) == __pyx_mstate_global->__Pyx_CachedMethodType) {
        int result;
        PyObject *newFunc = PyObject_GetAttr(func, __pyx_mstate_global->__pyx_n_u_func);
        if (unlikely(!newFunc)) {
            PyErr_Clear(); // It's only an optimization, so don't throw an error
            return 0;
        }
        result = __Pyx__IsSameCyOrCFunctionNoMethod(newFunc, cfunc);
        Py_DECREF(newFunc);
        return result;
    }
    return __Pyx__IsSameCyOrCFunctionNoMethod(func, cfunc);
}
#else
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
    if (PyMethod_Check(func)) {
        func = PyMethod_GET_FUNCTION(func);
    }
    return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
}
#endif
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_Py_XDECREF_SET(
        __Pyx_CyFunction_GetClassObj(f),
            ((classobj) ? __Pyx_NewRef(classobj) : NULL));
#else
    __Pyx_Py_XDECREF_SET(
        ((PyCMethodObject *) (f))->mm_class,
        (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
#endif
}
static PyObject *
__Pyx_CyFunction_get_doc_locked(__pyx_CyFunctionObject *op)
{
    if (unlikely(op->func_doc == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_doc = PyObject_GetAttrString(op->func, "__doc__");
        if (unlikely(!op->func_doc)) return NULL;
#else
        if (((PyCFunctionObject*)op)->m_ml->ml_doc) {
            op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
#endif
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure) {
    PyObject *result;
    CYTHON_UNUSED_VAR(closure);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_doc_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_doc, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name_locked(__pyx_CyFunctionObject *op)
{
    if (unlikely(op->func_name == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_name = PyObject_GetAttrString(op->func, "__name__");
#else
        op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context)
{
    PyObject *result = NULL;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_name_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_name, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    PyObject *result;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    Py_INCREF(op->func_qualname);
    result = op->func_qualname;
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_qualname, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
#endif
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(op);
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->defaults_tuple;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = NULL;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_defaults_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->defaults_kwdict;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_kwdefaults_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value || value == Py_None) {
        value = NULL;
    } else if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_annotations, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->func_annotations;
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) {
    PyObject *result;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_annotations_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static PyObject *
__Pyx_CyFunction_get_is_coroutine_value(__pyx_CyFunctionObject *op) {
    int is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
    if (is_coroutine) {
        PyObject *is_coroutine_value, *module, *fromlist, *marker = __pyx_mstate_global->__pyx_n_u_is_coroutine;
        fromlist = PyList_New(1);
        if (unlikely(!fromlist)) return NULL;
        Py_INCREF(marker);
#if CYTHON_ASSUME_SAFE_MACROS
        PyList_SET_ITEM(fromlist, 0, marker);
#else
        if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
            Py_DECREF(marker);
            Py_DECREF(fromlist);
            return NULL;
        }
#endif
        module = PyImport_ImportModuleLevelObject(__pyx_mstate_global->__pyx_n_u_asyncio_coroutines, NULL, NULL, fromlist, 0);
        Py_DECREF(fromlist);
        if (unlikely(!module)) goto ignore;
        is_coroutine_value = __Pyx_PyObject_GetAttrStr(module, marker);
        Py_DECREF(module);
        if (likely(is_coroutine_value)) {
            return is_coroutine_value;
        }
ignore:
        PyErr_Clear();
    }
    return __Pyx_PyBool_FromLong(is_coroutine);
}
static PyObject *
__Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) {
    PyObject *result;
    CYTHON_UNUSED_VAR(context);
    if (op->func_is_coroutine) {
        return __Pyx_NewRef(op->func_is_coroutine);
    }
    result = __Pyx_CyFunction_get_is_coroutine_value(op);
    if (unlikely(!result))
        return NULL;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    if (op->func_is_coroutine) {
        Py_DECREF(result);
        result = __Pyx_NewRef(op->func_is_coroutine);
    } else {
        op->func_is_coroutine = __Pyx_NewRef(result);
    }
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static void __Pyx_CyFunction_raise_argument_count_error(__pyx_CyFunctionObject *func, const char* message, Py_ssize_t size) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
    if (!py_name) return;
    PyErr_Format(PyExc_TypeError,
        "%.200S() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
        py_name, message, size);
    Py_DECREF(py_name);
#else
    const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
    PyErr_Format(PyExc_TypeError,
        "%.200s() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
        name, message, size);
#endif
}
static void __Pyx_CyFunction_raise_type_error(__pyx_CyFunctionObject *func, const char* message) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
    if (!py_name) return;
    PyErr_Format(PyExc_TypeError,
        "%.200S() %s",
        py_name, message);
    Py_DECREF(py_name);
#else
    const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
    PyErr_Format(PyExc_TypeError,
        "%.200s() %s",
        name, message);
#endif
}
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *
__Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_GetAttrString(op->func, "__module__");
}
static int
__Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_SetAttrString(op->func, "__module__", value);
}
#endif
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {"func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {"__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {"func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {"__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {"__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
    {"func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
    {"__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
#else
    {"func_dict", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
    {"__dict__", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
#endif
    {"func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {"__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {"func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {"__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {"func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {"__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {"func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {"__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {"__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {"__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {"_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
#if !CYTHON_COMPILING_IN_LIMITED_API
    {"__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    {"__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0},
#endif
#if CYTHON_METH_FASTCALL
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0},
#else
    {"__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0},
#else
    {"__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
#endif
#endif
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args)
{
    PyObject *result = NULL;
    CYTHON_UNUSED_VAR(args);
    __Pyx_BEGIN_CRITICAL_SECTION(m);
    Py_INCREF(m->func_qualname);
    result = m->func_qualname;
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
#if !CYTHON_COMPILING_IN_LIMITED_API
    PyCFunctionObject *cf = (PyCFunctionObject*) op;
#endif
    if (unlikely(op == NULL))
        return NULL;
#if CYTHON_COMPILING_IN_LIMITED_API
    op->func = PyCFunction_NewEx(ml, (PyObject*)op, module);
    if (unlikely(!op->func)) return NULL;
#endif
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
#if !CYTHON_COMPILING_IN_LIMITED_API
    cf->m_ml = ml;
    cf->m_self = (PyObject *) op;
#endif
    Py_XINCREF(closure);
    op->func_closure = closure;
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_XINCREF(module);
    cf->m_module = module;
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    op->func_dict = NULL;
#endif
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    op->func_classobj = NULL;
#else
    ((PyCMethodObject*)op)->mm_class = NULL;
#endif
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    op->func_is_coroutine = NULL;
#if CYTHON_METH_FASTCALL
    switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
    case METH_NOARGS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
        break;
    case METH_O:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
        break;
    case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
        break;
    case METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
        break;
    case METH_VARARGS | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = NULL;
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        Py_DECREF(op);
        return NULL;
    }
#endif
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_CLEAR(m->func);
#else
    Py_CLEAR(((PyCFunctionObject*)m)->m_module);
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    Py_CLEAR(m->func_dict);
#elif PY_VERSION_HEX < 0x030d0000
    _PyObject_ClearManagedDict((PyObject*)m);
#else
    PyObject_ClearManagedDict((PyObject*)m);
#endif
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
#if PY_VERSION_HEX < 0x030900B1
    Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
#else
    {
        PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
        ((PyCMethodObject *) (m))->mm_class = NULL;
        Py_XDECREF(cls);
    }
#endif
#endif
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    Py_CLEAR(m->func_is_coroutine);
    Py_CLEAR(m->defaults);
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    __Pyx_PyHeapTypeObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    {
        int e = __Pyx_call_type_traverse((PyObject*)m, 1, visit, arg);
        if (e) return e;
    }
    Py_VISIT(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(m->func);
#else
    Py_VISIT(((PyCFunctionObject*)m)->m_module);
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(m->func_dict);
#else
    {
        int e =
#if PY_VERSION_HEX < 0x030d0000
            _PyObject_VisitManagedDict
#else
            PyObject_VisitManagedDict
#endif
                ((PyObject*)m, visit, arg);
        if (e != 0) return e;
    }
#endif
    __Pyx_VISIT_CONST(m->func_name);
    __Pyx_VISIT_CONST(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    __Pyx_VISIT_CONST(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
#endif
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    Py_VISIT(m->func_is_coroutine);
    Py_VISIT(m->defaults);
    return 0;
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
    PyObject *repr;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    repr = PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
    __Pyx_END_CRITICAL_SECTION();
    return repr;
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *f = ((__pyx_CyFunctionObject*)func)->func;
    PyCFunction meth;
    int flags;
    meth = PyCFunction_GetFunction(f);
    if (unlikely(!meth)) return NULL;
    flags = PyCFunction_GetFlags(f);
    if (unlikely(flags < 0)) return NULL;
#else
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    int flags = f->m_ml->ml_flags;
#endif
    Py_ssize_t size;
    switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void(*)(void))meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_SIZE
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 0))
                return (*meth)(self, NULL);
            __Pyx_CyFunction_raise_argument_count_error(
                (__pyx_CyFunctionObject*)func,
                "takes no arguments", size);
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_SIZE
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
            __Pyx_CyFunction_raise_argument_count_error(
                (__pyx_CyFunctionObject*)func,
                "takes exactly one argument", size);
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        return NULL;
    }
    __Pyx_CyFunction_raise_type_error(
        (__pyx_CyFunctionObject*)func, "takes no keyword arguments");
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *self, *result;
#if CYTHON_COMPILING_IN_LIMITED_API
    self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func);
    if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
    self = ((PyCFunctionObject*)func)->m_self;
#endif
    result = __Pyx_CyFunction_CallMethod(func, self, arg, kw);
    return result;
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
     __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
    if (vc) {
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
        return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
#else
        (void) &__Pyx_PyVectorcall_FastCallDict;
        return PyVectorcall_Call(func, args, kw);
#endif
    }
#endif
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
#if CYTHON_ASSUME_SAFE_SIZE
        argc = PyTuple_GET_SIZE(args);
#else
        argc = PyTuple_Size(args);
        if (unlikely(argc < 0)) return NULL;
#endif
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
            PyErr_Format(PyExc_TypeError,
                         "unbound method %.200S() needs an argument",
                         cyfunc->func_qualname);
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
{
    int ret = 0;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        if (unlikely(nargs < 1)) {
            __Pyx_CyFunction_raise_type_error(
                cyfunc, "needs an argument");
            return -1;
        }
        ret = 1;
    }
    if (unlikely(kwnames) && unlikely(__Pyx_PyTuple_GET_SIZE(kwnames))) {
        __Pyx_CyFunction_raise_type_error(
            cyfunc, "takes no keyword arguments");
        return -1;
    }
    return ret;
}
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 0)) {
        __Pyx_CyFunction_raise_argument_count_error(
            cyfunc, "takes no arguments", nargs);
        return NULL;
    }
    return meth(self, NULL);
}
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 1)) {
        __Pyx_CyFunction_raise_argument_count_error(
            cyfunc, "takes exactly one argument", nargs);
        return NULL;
    }
    return meth(self, args[0]);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))meth)(self, args, nargs, kwnames);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc);
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    #if PY_VERSION_HEX < 0x030e00A6
    size_t nargs_value = (size_t) nargs;
    #else
    Py_ssize_t nargs_value = nargs;
    #endif
    return ((__Pyx_PyCMethod)(void(*)(void))meth)(self, cls, args, nargs_value, kwnames);
}
#endif
static PyType_Slot __pyx_CyFunctionType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
    {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
    {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
    {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
    {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
    {Py_tp_methods, (void *)__pyx_CyFunction_methods},
    {Py_tp_members, (void *)__pyx_CyFunction_members},
    {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
    {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
    {0, 0},
};
static PyType_Spec __pyx_CyFunctionType_spec = {
    __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
    Py_TPFLAGS_METHOD_DESCRIPTOR |
#endif
#if CYTHON_METH_FASTCALL
#if defined(Py_TPFLAGS_HAVE_VECTORCALL)
    Py_TPFLAGS_HAVE_VECTORCALL |
#elif defined(_Py_TPFLAGS_HAVE_VECTORCALL)
    _Py_TPFLAGS_HAVE_VECTORCALL |
#endif
#endif // CYTHON_METH_FASTCALL
#if PY_VERSION_HEX >= 0x030C0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_TPFLAGS_MANAGED_DICT |
#endif
    Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION |
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    __pyx_CyFunctionType_slots
};
static int __pyx_CyFunction_init(PyObject *module) {
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
    mstate->__pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(
        mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_CyFunctionType_spec, NULL);
    if (unlikely(mstate->__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, PyTypeObject *defaults_type) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_CallObject((PyObject*)defaults_type, NULL); // _PyObject_New(defaults_type);
    if (unlikely(!m->defaults))
        return NULL;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* CythonFunction */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    PyObject *op = __Pyx_CyFunction_Init(
        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_mstate_global->__pyx_CyFunctionType),
        ml, flags, qualname, closure, module, globals, code
    );
    if (likely(op)) {
        PyObject_GC_Track(op);
    }
    return op;
}

/* PyObjectVectorCallMethodKwBuilder */
#if !CYTHON_VECTORCALL || PY_VERSION_HEX < 0x03090000
static PyObject *__Pyx_Object_VectorcallMethod_CallFromBuilder(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames) {
    PyObject *result;
    PyObject *obj = PyObject_GetAttr(args[0], name);
    if (unlikely(!obj))
        return NULL;
    result = __Pyx_Object_Vectorcall_CallFromBuilder(obj, args+1, nargsf-1, kwnames);
    Py_DECREF(obj);
    return result;
}
#endif

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (cls == a || cls == b) return 1;
    mro = cls->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            PyObject *base = PyTuple_GET_ITEM(mro, i);
            if (base == (PyObject *)a || base == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
}
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    if (exc_type1) {
        return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
    } else {
        return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
}
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* ArgTypeTestFunc (used by ArgTypeTest) */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    __Pyx_TypeName type_name;
    __Pyx_TypeName obj_type_name;
    PyObject *extra_info = __pyx_mstate_global->__pyx_empty_unicode;
    int from_annotation_subclass = 0;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (!exact) {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    } else if (exact == 2) {
        if (__Pyx_TypeCheck(obj, type)) {
            from_annotation_subclass = 1;
            extra_info = __pyx_mstate_global->__pyx_kp_u_Note_that_Cython_is_deliberately;
        }
    }
    type_name = __Pyx_PyType_GetFullyQualifiedName(type);
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME
        ", got " __Pyx_FMT_TYPENAME ")"
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
        "%s%U"
#endif
        , name, type_name, obj_type_name
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
        , (from_annotation_subclass ? ". " : ""), extra_info
#endif
        );
#if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    if (exact == 2 && from_annotation_subclass) {
        PyObject *res;
        PyObject *vargs[2];
        vargs[0] = PyErr_GetRaisedException();
        vargs[1] = extra_info;
        res = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_kp_u_add_note, vargs, 2, NULL);
        Py_XDECREF(res);
        PyErr_SetRaisedException(vargs[0]);
    }
#endif
    __Pyx_DECREF_TypeName(type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* Intern */
static PyObject* __Pyx_Intern(PyObject* s) {
    if (unlikely(!PyUnicode_CheckExact(s))) {
        __Pyx_RaiseUnexpectedTypeError("str", s);
        return NULL;
    }
    Py_INCREF(s);
    PyUnicode_InternInPlace(&s);
    return s;
}

/* IterNextPlain (used by IterNext) */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject *__Pyx_GetBuiltinNext_LimitedAPI(void) {
    if (unlikely(!__pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache))
        __pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache = __Pyx_GetBuiltinName(__pyx_mstate_global->__pyx_n_u_next_2);
    return __pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache;
}
#endif
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next_Plain(PyObject *iterator) {
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
    PyObject *result;
    PyObject *next = __Pyx_GetBuiltinNext_LimitedAPI();
    if (unlikely(!next)) return NULL;
    result = PyObject_CallFunctionObjArgs(next, iterator, NULL);
    return result;
#else
    (void)__Pyx_GetBuiltinName; // only for early limited API
    iternextfunc iternext = __Pyx_PyObject_GetIterNextFunc(iterator);
    assert(iternext);
    return iternext(iterator);
#endif
}

/* IterNext */
static PyObject *__Pyx_PyIter_Next2Default(PyObject* defval) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (unlikely(exc_type)) {
        if (!defval || unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return NULL;
        __Pyx_PyErr_Clear();
        Py_INCREF(defval);
        return defval;
    }
    if (defval) {
        Py_INCREF(defval);
        return defval;
    }
    __Pyx_PyErr_SetNone(PyExc_StopIteration);
    return NULL;
}
static void __Pyx_PyIter_Next_ErrorNoIterator(PyObject *iterator) {
    __Pyx_TypeName iterator_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(iterator));
    PyErr_Format(PyExc_TypeError,
        __Pyx_FMT_TYPENAME " object is not an iterator", iterator_type_name);
    __Pyx_DECREF_TypeName(iterator_type_name);
}
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject* iterator, PyObject* defval) {
    PyObject* next;
#if !CYTHON_COMPILING_IN_LIMITED_API
    iternextfunc iternext = __Pyx_PyObject_TryGetSlot(iterator, tp_iternext, iternextfunc);
    if (likely(iternext)) {
        next = iternext(iterator);
        if (likely(next))
            return next;
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
        if (unlikely(iternext == &_PyObject_NextNotImplemented))
            return NULL;
    #endif
    } else if (CYTHON_USE_TYPE_SLOTS) {
        __Pyx_PyIter_Next_ErrorNoIterator(iterator);
        return NULL;
    } else
#endif
    if (unlikely(!PyIter_Check(iterator))) {
        __Pyx_PyIter_Next_ErrorNoIterator(iterator);
        return NULL;
    } else {
        next = defval ? PyIter_Next(iterator) : __Pyx_PyIter_Next_Plain(iterator);
        if (likely(next))
            return next;
    }
    return __Pyx_PyIter_Next2Default(defval);
}

/* CIntToDigits (used by CIntToPyUnicode) */
static const char DIGIT_PAIRS_10[2*10*10+1] = {
    "00010203040506070809"
    "10111213141516171819"
    "20212223242526272829"
    "30313233343536373839"
    "40414243444546474849"
    "50515253545556575859"
    "60616263646566676869"
    "70717273747576777879"
    "80818283848586878889"
    "90919293949596979899"
};
static const char DIGIT_PAIRS_8[2*8*8+1] = {
    "0001020304050607"
    "1011121314151617"
    "2021222324252627"
    "3031323334353637"
    "4041424344454647"
    "5051525354555657"
    "6061626364656667"
    "7071727374757677"
};
static const char DIGITS_HEX[2*16+1] = {
    "0123456789abcdef"
    "0123456789ABCDEF"
};

/* BuildPyUnicode (used by COrdinalToPyUnicode) */
static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, const char* chars, int clength,
                                                int prepend_sign, char padding_char) {
    PyObject *uval;
    Py_ssize_t uoffset = ulength - clength;
#if CYTHON_USE_UNICODE_INTERNALS
    Py_ssize_t i;
    void *udata;
    uval = PyUnicode_New(ulength, 127);
    if (unlikely(!uval)) return NULL;
    udata = PyUnicode_DATA(uval);
    if (uoffset > 0) {
        i = 0;
        if (prepend_sign) {
            __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, 0, '-');
            i++;
        }
        for (; i < uoffset; i++) {
            __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, i, padding_char);
        }
    }
    for (i=0; i < clength; i++) {
        __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, uoffset+i, chars[i]);
    }
#else
    {
        PyObject *sign = NULL, *padding = NULL;
        uval = NULL;
        if (uoffset > 0) {
            prepend_sign = !!prepend_sign;
            if (uoffset > prepend_sign) {
                padding = PyUnicode_FromOrdinal(padding_char);
                if (likely(padding) && uoffset > prepend_sign + 1) {
                    PyObject *tmp = PySequence_Repeat(padding, uoffset - prepend_sign);
                    Py_DECREF(padding);
                    padding = tmp;
                }
                if (unlikely(!padding)) goto done_or_error;
            }
            if (prepend_sign) {
                sign = PyUnicode_FromOrdinal('-');
                if (unlikely(!sign)) goto done_or_error;
            }
        }
        uval = PyUnicode_DecodeASCII(chars, clength, NULL);
        if (likely(uval) && padding) {
            PyObject *tmp = PyUnicode_Concat(padding, uval);
            Py_DECREF(uval);
            uval = tmp;
        }
        if (likely(uval) && sign) {
            PyObject *tmp = PyUnicode_Concat(sign, uval);
            Py_DECREF(uval);
            uval = tmp;
        }
done_or_error:
        Py_XDECREF(padding);
        Py_XDECREF(sign);
    }
#endif
    return uval;
}

/* COrdinalToPyUnicode (used by CIntToPyUnicode) */
static CYTHON_INLINE int __Pyx_CheckUnicodeValue(int value) {
    return value <= 1114111;
}
static PyObject* __Pyx_PyUnicode_FromOrdinal_Padded(int value, Py_ssize_t ulength, char padding_char) {
    Py_ssize_t padding_length = ulength - 1;
    if (likely((padding_length <= 250) && (value < 0xD800 || value > 0xDFFF))) {
        char chars[256];
        if (value <= 255) {
            memset(chars, padding_char, (size_t) padding_length);
            chars[ulength-1] = (char) value;
            return PyUnicode_DecodeLatin1(chars, ulength, NULL);
        }
        char *cpos = chars + sizeof(chars);
        if (value < 0x800) {
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0xc0 | (value & 0x1f));
        } else if (value < 0x10000) {
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0xe0 | (value & 0x0f));
        } else {
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0xf0 | (value & 0x07));
        }
        cpos -= padding_length;
        memset(cpos, padding_char, (size_t) padding_length);
        return PyUnicode_DecodeUTF8(cpos, chars + sizeof(chars) - cpos, NULL);
    }
    if (value <= 127 && CYTHON_USE_UNICODE_INTERNALS) {
        const char chars[1] = {(char) value};
        return __Pyx_PyUnicode_BuildFromAscii(ulength, chars, 1, 0, padding_char);
    }
    {
        PyObject *uchar, *padding_uchar, *padding, *result;
        padding_uchar = PyUnicode_FromOrdinal(padding_char);
        if (unlikely(!padding_uchar)) return NULL;
        padding = PySequence_Repeat(padding_uchar, padding_length);
        Py_DECREF(padding_uchar);
        if (unlikely(!padding)) return NULL;
        uchar = PyUnicode_FromOrdinal(value);
        if (unlikely(!uchar)) {
            Py_DECREF(padding);
            return NULL;
        }
        result = PyUnicode_Concat(padding, uchar);
        Py_DECREF(padding);
        Py_DECREF(uchar);
        return result;
    }
}

/* CIntToPyUnicode */
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_unsigned_int(unsigned int value, Py_ssize_t width, char padding_char) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!(is_unsigned || value == 0 || value > 0) ||
                    !(sizeof(value) <= 2 || value & ~ (unsigned int) 0x01fffff || __Pyx_CheckUnicodeValue((int) value)))) {
        PyErr_SetString(PyExc_OverflowError, "%c arg not in range(0x110000)");
        return NULL;
    }
    if (width <= 1) {
        return PyUnicode_FromOrdinal((int) value);
    }
    return __Pyx_PyUnicode_FromOrdinal_Padded((int) value, width, padding_char);
}
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_unsigned_int(unsigned int value, Py_ssize_t width, char padding_char, char format_char) {
    char digits[sizeof(unsigned int)*3+2];
    char *dpos, *end = digits + sizeof(unsigned int)*3+2;
    const char *hex_digits = DIGITS_HEX;
    Py_ssize_t length, ulength;
    int prepend_sign, last_one_off;
    unsigned int remaining;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (format_char == 'X') {
        hex_digits += 16;
        format_char = 'x';
    }
    remaining = value;
    last_one_off = 0;
    dpos = end;
    do {
        int digit_pos;
        switch (format_char) {
        case 'o':
            digit_pos = abs((int)(remaining % (8*8)));
            remaining = (unsigned int) (remaining / (8*8));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 8);
            break;
        case 'd':
            digit_pos = abs((int)(remaining % (10*10)));
            remaining = (unsigned int) (remaining / (10*10));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 10);
            break;
        case 'x':
            *(--dpos) = hex_digits[abs((int)(remaining % 16))];
            remaining = (unsigned int) (remaining / 16);
            break;
        default:
            assert(0);
            break;
        }
    } while (unlikely(remaining != 0));
    assert(!last_one_off || *dpos == '0');
    dpos += last_one_off;
    length = end - dpos;
    ulength = length;
    prepend_sign = 0;
    if (!is_unsigned && value <= neg_one) {
        if (padding_char == ' ' || width <= length + 1) {
            *(--dpos) = '-';
            ++length;
        } else {
            prepend_sign = 1;
        }
        ++ulength;
    }
    if (width > ulength) {
        ulength = width;
    }
    if (ulength == 1) {
        return PyUnicode_FromOrdinal(*dpos);
    }
    return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
}

/* CIntToPyUnicode */
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!(is_unsigned || value == 0 || value > 0) ||
                    !(sizeof(value) <= 2 || value & ~ (int) 0x01fffff || __Pyx_CheckUnicodeValue((int) value)))) {
        PyErr_SetString(PyExc_OverflowError, "%c arg not in range(0x110000)");
        return NULL;
    }
    if (width <= 1) {
        return PyUnicode_FromOrdinal((int) value);
    }
    return __Pyx_PyUnicode_FromOrdinal_Padded((int) value, width, padding_char);
}
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char) {
    char digits[sizeof(int)*3+2];
    char *dpos, *end = digits + sizeof(int)*3+2;
    const char *hex_digits = DIGITS_HEX;
    Py_ssize_t length, ulength;
    int prepend_sign, last_one_off;
    int remaining;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (format_char == 'X') {
        hex_digits += 16;
        format_char = 'x';
    }
    remaining = value;
    last_one_off = 0;
    dpos = end;
    do {
        int digit_pos;
        switch (format_char) {
        case 'o':
            digit_pos = abs((int)(remaining % (8*8)));
            remaining = (int) (remaining / (8*8));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 8);
            break;
        case 'd':
            digit_pos = abs((int)(remaining % (10*10)));
            remaining = (int) (remaining / (10*10));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 10);
            break;
        case 'x':
            *(--dpos) = hex_digits[abs((int)(remaining % 16))];
            remaining = (int) (remaining / 16);
            break;
        default:
            assert(0);
            break;
        }
    } while (unlikely(remaining != 0));
    assert(!last_one_off || *dpos == '0');
    dpos += last_one_off;
    length = end - dpos;
    ulength = length;
    prepend_sign = 0;
    if (!is_unsigned && value <= neg_one) {
        if (padding_char == ' ' || width <= length + 1) {
            *(--dpos) = '-';
            ++length;
        } else {
            prepend_sign = 1;
        }
        ++ulength;
    }
    if (width > ulength) {
        ulength = width;
    }
    if (ulength == 1) {
        return PyUnicode_FromOrdinal(*dpos);
    }
    return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
}

/* CoroutineSetYieldFrom (used by GeneratorYieldFrom) */
static void
__Pyx_Coroutine_Set_Owned_Yield_From(__pyx_CoroutineObject *gen, PyObject *yf) {
    assert (!gen->yieldfrom);
#if CYTHON_USE_AM_SEND
    assert (!gen->yieldfrom_am_send);
    #if PY_VERSION_HEX < 0x030A00F0
    if (__Pyx_PyType_HasFeature(Py_TYPE(yf), __Pyx_TPFLAGS_HAVE_AM_SEND))
    #endif
    {
        __Pyx_pyiter_sendfunc am_send;
        #if __PYX_LIMITED_VERSION_HEX >= 0x030A0000
        am_send = __Pyx_PyObject_TryGetSubSlot(yf, tp_as_async, am_send, __Pyx_pyiter_sendfunc);
        #else
        __Pyx_PyAsyncMethodsStruct* tp_as_async = (__Pyx_PyAsyncMethodsStruct*) Py_TYPE(yf)->tp_as_async;
        am_send = tp_as_async ? tp_as_async->am_send : NULL;
        #endif
        if (likely(am_send)) {
            gen->yieldfrom_am_send = am_send;
        }
    }
#endif
    gen->yieldfrom = yf;
}

/* PyObjectCallMethod1 (used by CoroutineBase) */
#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))
static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
    PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
    Py_DECREF(method);
    return result;
}
#endif
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
#if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))
    PyObject *args[2] = {obj, arg};
    (void) __Pyx_PyObject_CallOneArg;
    (void) __Pyx_PyObject_Call2Args;
    return PyObject_VectorcallMethod(method_name, args, 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#else
    PyObject *method = NULL, *result;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_Call2Args(method, obj, arg);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) return NULL;
    return __Pyx__PyObject_CallMethod1(method, arg);
#endif
}

/* ReturnWithStopIteration (used by CoroutineBase) */
static void __Pyx__ReturnWithStopIteration(PyObject* value, int async);
static CYTHON_INLINE void __Pyx_ReturnWithStopIteration(PyObject* value, int async, int iternext) {
    if (value == Py_None) {
        if (async || !iternext)
            PyErr_SetNone(async ? PyExc_StopAsyncIteration : PyExc_StopIteration);
        return;
    }
    __Pyx__ReturnWithStopIteration(value, async);
}
static void __Pyx__ReturnWithStopIteration(PyObject* value, int async) {
#if CYTHON_COMPILING_IN_CPYTHON
    __Pyx_PyThreadState_declare
#endif
    PyObject *exc;
    PyObject *exc_type = async ? PyExc_StopAsyncIteration : PyExc_StopIteration;
#if CYTHON_COMPILING_IN_CPYTHON
    if ((PY_VERSION_HEX >= (0x030C00A6)) || unlikely(PyTuple_Check(value) || PyExceptionInstance_Check(value))) {
        if (PY_VERSION_HEX >= (0x030e00A1)) {
            exc = __Pyx_PyObject_CallOneArg(exc_type, value);
        } else {
            PyObject *args_tuple = PyTuple_New(1);
            if (unlikely(!args_tuple)) return;
            Py_INCREF(value);
            PyTuple_SET_ITEM(args_tuple, 0, value);
            exc = PyObject_Call(exc_type, args_tuple, NULL);
            Py_DECREF(args_tuple);
        }
        if (unlikely(!exc)) return;
    } else {
        Py_INCREF(value);
        exc = value;
    }
    #if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    #if CYTHON_USE_EXC_INFO_STACK
    if (!__pyx_tstate->exc_info->exc_value)
    #else
    if (!__pyx_tstate->exc_type)
    #endif
    {
        Py_INCREF(exc_type);
        __Pyx_ErrRestore(exc_type, exc, NULL);
        return;
    }
    #endif
#else
    exc = __Pyx_PyObject_CallOneArg(exc_type, value);
    if (unlikely(!exc)) return;
#endif
    PyErr_SetObject(exc_type, exc);
    Py_DECREF(exc);
}

/* CoroutineBase (used by Generator) */
#if !CYTHON_COMPILING_IN_LIMITED_API
#include <frameobject.h>
#if PY_VERSION_HEX >= 0x030b00a6 && !defined(PYPY_VERSION)
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#endif // CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE void
__Pyx_Coroutine_Undelegate(__pyx_CoroutineObject *gen) {
#if CYTHON_USE_AM_SEND
    gen->yieldfrom_am_send = NULL;
#endif
    Py_CLEAR(gen->yieldfrom);
}
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *__pyx_tstate, PyObject **pvalue) {
    PyObject *et, *ev, *tb;
    PyObject *value = NULL;
    CYTHON_UNUSED_VAR(__pyx_tstate);
    __Pyx_ErrFetch(&et, &ev, &tb);
    if (!et) {
        Py_XDECREF(tb);
        Py_XDECREF(ev);
        Py_INCREF(Py_None);
        *pvalue = Py_None;
        return 0;
    }
    if (likely(et == PyExc_StopIteration)) {
        if (!ev) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
        else if (likely(__Pyx_IS_TYPE(ev, (PyTypeObject*)PyExc_StopIteration))) {
            #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL
            value = PyObject_GetAttr(ev, __pyx_mstate_global->__pyx_n_u_value);
            if (unlikely(!value)) goto limited_api_failure;
            #else
            value = ((PyStopIterationObject *)ev)->value;
            Py_INCREF(value);
            #endif
            Py_DECREF(ev);
        }
        else if (unlikely(PyTuple_Check(ev))) {
            Py_ssize_t tuple_size = __Pyx_PyTuple_GET_SIZE(ev);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely(tuple_size < 0)) {
                Py_XDECREF(tb);
                Py_DECREF(ev);
                Py_DECREF(et);
                return -1;
            }
            #endif
            if (tuple_size >= 1) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                value = PyTuple_GET_ITEM(ev, 0);
                Py_INCREF(value);
#elif CYTHON_ASSUME_SAFE_MACROS
                value = PySequence_ITEM(ev, 0);
#else
                value = PySequence_GetItem(ev, 0);
                if (!value) goto limited_api_failure;
#endif
            } else {
                Py_INCREF(Py_None);
                value = Py_None;
            }
            Py_DECREF(ev);
        }
        else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) {
            value = ev;
        }
        if (likely(value)) {
            Py_XDECREF(tb);
            Py_DECREF(et);
            *pvalue = value;
            return 0;
        }
    } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    PyErr_NormalizeException(&et, &ev, &tb);
    if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    Py_XDECREF(tb);
    Py_DECREF(et);
#if CYTHON_COMPILING_IN_LIMITED_API
    value = PyObject_GetAttr(ev, __pyx_mstate_global->__pyx_n_u_value);
#else
    value = ((PyStopIterationObject *)ev)->value;
    Py_INCREF(value);
#endif
    Py_DECREF(ev);
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(!value)) return -1;
#endif
    *pvalue = value;
    return 0;
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL || !CYTHON_ASSUME_SAFE_MACROS
  limited_api_failure:
    Py_XDECREF(et);
    Py_XDECREF(tb);
    Py_XDECREF(ev);
    return -1;
#endif
}
static CYTHON_INLINE
__Pyx_PySendResult __Pyx_Coroutine_status_from_result(PyObject **retval) {
    if (*retval) {
        return PYGEN_NEXT;
    } else if (likely(__Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, retval) == 0)) {
        return PYGEN_RETURN;
    } else {
        return PYGEN_ERROR;
    }
}
static CYTHON_INLINE
void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) {
#if PY_VERSION_HEX >= 0x030B00a4
    Py_CLEAR(exc_state->exc_value);
#else
    PyObject *t, *v, *tb;
    t = exc_state->exc_type;
    v = exc_state->exc_value;
    tb = exc_state->exc_traceback;
    exc_state->exc_type = NULL;
    exc_state->exc_value = NULL;
    exc_state->exc_traceback = NULL;
    Py_XDECREF(t);
    Py_XDECREF(v);
    Py_XDECREF(tb);
#endif
}
#define __Pyx_Coroutine_AlreadyRunningError(gen)  (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyRunningError(__pyx_CoroutineObject *gen) {
    const char *msg;
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check((PyObject*)gen)) {
        msg = "coroutine already executing";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) {
        msg = "async generator already executing";
    #endif
    } else {
        msg = "generator already executing";
    }
    PyErr_SetString(PyExc_ValueError, msg);
}
static void __Pyx_Coroutine_AlreadyTerminatedError(PyObject *gen, PyObject *value, int closing) {
    CYTHON_MAYBE_UNUSED_VAR(gen);
    CYTHON_MAYBE_UNUSED_VAR(closing);
    #ifdef __Pyx_Coroutine_USED
    if (!closing && __Pyx_Coroutine_Check(gen)) {
        PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine");
    } else
    #endif
    if (value) {
        #ifdef __Pyx_AsyncGen_USED
        if (__Pyx_AsyncGen_CheckExact(gen))
            PyErr_SetNone(PyExc_StopAsyncIteration);
        else
        #endif
        PyErr_SetNone(PyExc_StopIteration);
    }
}
static
__Pyx_PySendResult __Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, PyObject **result, int closing) {
    __Pyx_PyThreadState_declare
    PyThreadState *tstate;
    __Pyx_ExcInfoStruct *exc_state;
    PyObject *retval;
    assert(__Pyx_Coroutine_get_is_running(self));  // Callers should ensure is_running
    if (unlikely(self->resume_label == -1)) {
        __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing);
        return PYGEN_ERROR;
    }
#if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    tstate = __pyx_tstate;
#else
    tstate = __Pyx_PyThreadState_Current;
#endif
    exc_state = &self->gi_exc_state;
    if (exc_state->exc_value) {
        #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        #else
        PyObject *exc_tb;
        #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON
        exc_tb = PyException_GetTraceback(exc_state->exc_value);
        #elif PY_VERSION_HEX >= 0x030B00a4
        exc_tb = ((PyBaseExceptionObject*) exc_state->exc_value)->traceback;
        #else
        exc_tb = exc_state->exc_traceback;
        #endif
        if (exc_tb) {
            PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
            PyFrameObject *f = tb->tb_frame;
            assert(f->f_back == NULL);
            #if PY_VERSION_HEX >= 0x030B00A1
            f->f_back = PyThreadState_GetFrame(tstate);
            #else
            Py_XINCREF(tstate->frame);
            f->f_back = tstate->frame;
            #endif
            #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON
            Py_DECREF(exc_tb);
            #endif
        }
        #endif
    }
#if CYTHON_USE_EXC_INFO_STACK
    exc_state->previous_item = tstate->exc_info;
    tstate->exc_info = exc_state;
#else
    if (exc_state->exc_type) {
        __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    } else {
        __Pyx_Coroutine_ExceptionClear(exc_state);
        __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    }
#endif
    retval = self->body(self, tstate, value);
#if CYTHON_USE_EXC_INFO_STACK
    exc_state = &self->gi_exc_state;
    tstate->exc_info = exc_state->previous_item;
    exc_state->previous_item = NULL;
    __Pyx_Coroutine_ResetFrameBackpointer(exc_state);
#endif
    *result = retval;
    if (self->resume_label == -1) {
        return likely(retval) ? PYGEN_RETURN : PYGEN_ERROR;
    }
    return PYGEN_NEXT;
}
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
    CYTHON_UNUSED_VAR(exc_state);
#else
    PyObject *exc_tb;
    #if PY_VERSION_HEX >= 0x030B00a4
    if (!exc_state->exc_value) return;
    exc_tb = PyException_GetTraceback(exc_state->exc_value);
    #else
    exc_tb = exc_state->exc_traceback;
    #endif
    if (likely(exc_tb)) {
        PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
        PyFrameObject *f = tb->tb_frame;
        Py_CLEAR(f->f_back);
        #if PY_VERSION_HEX >= 0x030B00a4
        Py_DECREF(exc_tb);
        #endif
    }
#endif
}
#define __Pyx_Coroutine_MethodReturnFromResult(gen, result, retval, iternext)\
    ((result) == PYGEN_NEXT ? (retval) : __Pyx__Coroutine_MethodReturnFromResult(gen, result, retval, iternext))
static PyObject *
__Pyx__Coroutine_MethodReturnFromResult(PyObject* gen, __Pyx_PySendResult result, PyObject *retval, int iternext) {
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if (likely(result == PYGEN_RETURN)) {
        int is_async = 0;
        #ifdef __Pyx_AsyncGen_USED
        is_async = __Pyx_AsyncGen_CheckExact(gen);
        #endif
        __Pyx_ReturnWithStopIteration(retval, is_async, iternext);
        Py_XDECREF(retval);
    }
    return NULL;
}
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE
PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
#if PY_VERSION_HEX <= 0x030A00A1
    return _PyGen_Send(gen, arg);
#else
    PyObject *result;
    if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
        if (PyAsyncGen_CheckExact(gen)) {
            assert(result == Py_None);
            PyErr_SetNone(PyExc_StopAsyncIteration);
        }
        else if (result == Py_None) {
            PyErr_SetNone(PyExc_StopIteration);
        }
        else {
#if PY_VERSION_HEX < 0x030d00A1
            _PyGen_SetStopIterationValue(result);
#else
            if (!PyTuple_Check(result) && !PyExceptionInstance_Check(result)) {
                PyErr_SetObject(PyExc_StopIteration, result);
            } else {
                PyObject *exc = __Pyx_PyObject_CallOneArg(PyExc_StopIteration, result);
                if (likely(exc != NULL)) {
                    PyErr_SetObject(PyExc_StopIteration, exc);
                    Py_DECREF(exc);
                }
            }
#endif
        }
        Py_DECREF(result);
        result = NULL;
    }
    return result;
#endif
}
#endif
static CYTHON_INLINE __Pyx_PySendResult
__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen, PyObject** retval) {
    __Pyx_PySendResult result;
    PyObject *val = NULL;
    assert(__Pyx_Coroutine_get_is_running(gen));
    __Pyx_Coroutine_Undelegate(gen);
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val);
    result = __Pyx_Coroutine_SendEx(gen, val, retval, 0);
    Py_XDECREF(val);
    return result;
}
#if CYTHON_USE_AM_SEND
static __Pyx_PySendResult
__Pyx_Coroutine_SendToDelegate(__pyx_CoroutineObject *gen, __Pyx_pyiter_sendfunc gen_am_send, PyObject *value, PyObject **retval) {
    PyObject *ret = NULL;
    __Pyx_PySendResult delegate_result, result;
    assert(__Pyx_Coroutine_get_is_running(gen));
    delegate_result = gen_am_send(gen->yieldfrom, value, &ret);
    if (delegate_result == PYGEN_NEXT) {
        assert (ret != NULL);
        *retval = ret;
        return PYGEN_NEXT;
    }
    assert (delegate_result != PYGEN_ERROR || ret == NULL);
    __Pyx_Coroutine_Undelegate(gen);
    result = __Pyx_Coroutine_SendEx(gen, ret, retval, 0);
    Py_XDECREF(ret);
    return result;
}
#endif
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
    PyObject *retval = NULL;
    __Pyx_PySendResult result = __Pyx_Coroutine_AmSend(self, value, &retval);
    return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 0);
}
static __Pyx_PySendResult
__Pyx_Coroutine_AmSend(PyObject *self, PyObject *value, PyObject **retval) {
    __Pyx_PySendResult result;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        *retval = __Pyx_Coroutine_AlreadyRunningError(gen);
        return PYGEN_ERROR;
    }
    #if CYTHON_USE_AM_SEND
    if (gen->yieldfrom_am_send) {
        result = __Pyx_Coroutine_SendToDelegate(gen, gen->yieldfrom_am_send, value, retval);
    } else
    #endif
    if (gen->yieldfrom) {
        PyObject *yf = gen->yieldfrom;
        PyObject *ret;
      #if !CYTHON_USE_AM_SEND
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_AsyncGen_USED
        if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
            ret = __Pyx_async_gen_asend_send(yf, value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        if (PyCoro_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
      #endif
        {
            #if !CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x03080000
            if (value == Py_None && PyIter_Check(yf))
                ret = __Pyx_PyIter_Next_Plain(yf);
            else
            #endif
                ret = __Pyx_PyObject_CallMethod1(yf, __pyx_mstate_global->__pyx_n_u_send, value);
        }
        if (likely(ret)) {
            __Pyx_Coroutine_unset_is_running(gen);
            *retval = ret;
            return PYGEN_NEXT;
        }
        result = __Pyx_Coroutine_FinishDelegation(gen, retval);
    } else {
        result = __Pyx_Coroutine_SendEx(gen, value, retval, 0);
    }
    __Pyx_Coroutine_unset_is_running(gen);
    return result;
}
static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) {
    __Pyx_PySendResult result;
    PyObject *retval = NULL;
    CYTHON_UNUSED_VAR(gen);
    assert(__Pyx_Coroutine_get_is_running(gen));
    #ifdef __Pyx_Generator_USED
    if (__Pyx_Generator_CheckExact(yf)) {
        result = __Pyx_Coroutine_Close(yf, &retval);
    } else
    #endif
    #ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(yf)) {
        result = __Pyx_Coroutine_Close(yf, &retval);
    } else
    if (__Pyx_CoroutineAwait_CheckExact(yf)) {
        result = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf);
    } else
    #endif
    #ifdef __Pyx_AsyncGen_USED
    if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
        retval = __Pyx_async_gen_asend_close(yf, NULL);
        result = PYGEN_RETURN;
    } else
    if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) {
        retval = __Pyx_async_gen_athrow_close(yf, NULL);
        result = PYGEN_RETURN;
    } else
    #endif
    {
        PyObject *meth;
        result = PYGEN_RETURN;
        meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_mstate_global->__pyx_n_u_close);
        if (unlikely(!meth)) {
            if (unlikely(PyErr_Occurred())) {
                PyErr_WriteUnraisable(yf);
            }
        } else {
            retval = __Pyx_PyObject_CallNoArg(meth);
            Py_DECREF(meth);
            if (unlikely(!retval)) {
                result = PYGEN_ERROR;
            }
        }
    }
    Py_XDECREF(retval);
    return result == PYGEN_ERROR ? -1 : 0;
}
static PyObject *__Pyx_Generator_Next(PyObject *self) {
    __Pyx_PySendResult result;
    PyObject *retval = NULL;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    }
    #if CYTHON_USE_AM_SEND
    if (gen->yieldfrom_am_send) {
        result = __Pyx_Coroutine_SendToDelegate(gen, gen->yieldfrom_am_send, Py_None, &retval);
    } else
    #endif
    if (gen->yieldfrom) {
        PyObject *yf = gen->yieldfrom;
        PyObject *ret;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Generator_Next(yf);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_CheckExact(yf)) {
            ret = __Pyx_Coroutine_Send(yf, Py_None);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && (PY_VERSION_HEX < 0x030A00A3 || !CYTHON_USE_AM_SEND)
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
        } else
        #endif
            ret = __Pyx_PyIter_Next_Plain(yf);
        if (likely(ret)) {
            __Pyx_Coroutine_unset_is_running(gen);
            return ret;
        }
        result = __Pyx_Coroutine_FinishDelegation(gen, &retval);
    } else {
        result = __Pyx_Coroutine_SendEx(gen, Py_None, &retval, 0);
    }
    __Pyx_Coroutine_unset_is_running(gen);
    return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 1);
}
static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, PyObject *arg) {
    PyObject *retval = NULL;
    __Pyx_PySendResult result;
    CYTHON_UNUSED_VAR(arg);
    result = __Pyx_Coroutine_Close(self, &retval);
    if (unlikely(result == PYGEN_ERROR))
        return NULL;
    Py_XDECREF(retval);
    Py_RETURN_NONE;
}
static __Pyx_PySendResult
__Pyx_Coroutine_Close(PyObject *self, PyObject **retval) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    __Pyx_PySendResult result;
    PyObject *yf;
    int err = 0;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        *retval = __Pyx_Coroutine_AlreadyRunningError(gen);
        return PYGEN_ERROR;
    }
    yf = gen->yieldfrom;
    if (yf) {
        Py_INCREF(yf);
        err = __Pyx_Coroutine_CloseIter(gen, yf);
        __Pyx_Coroutine_Undelegate(gen);
        Py_DECREF(yf);
    }
    if (err == 0)
        PyErr_SetNone(PyExc_GeneratorExit);
    result = __Pyx_Coroutine_SendEx(gen, NULL, retval, 1);
    if (result == PYGEN_ERROR) {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_Coroutine_unset_is_running(gen);
        if (!__Pyx_PyErr_Occurred()) {
            return PYGEN_RETURN;
        } else if (likely(__Pyx_PyErr_ExceptionMatches2(PyExc_GeneratorExit, PyExc_StopIteration))) {
            __Pyx_PyErr_Clear();
            return PYGEN_RETURN;
        }
        return PYGEN_ERROR;
    } else if (likely(result == PYGEN_RETURN && *retval == Py_None)) {
        __Pyx_Coroutine_unset_is_running(gen);
        return PYGEN_RETURN;
    } else {
        const char *msg;
        Py_DECREF(*retval);
        *retval = NULL;
        if ((0)) {
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_Coroutine_Check(self)) {
            msg = "coroutine ignored GeneratorExit";
        #endif
        #ifdef __Pyx_AsyncGen_USED
        } else if (__Pyx_AsyncGen_CheckExact(self)) {
            msg = "async generator ignored GeneratorExit";
        #endif
        } else {
            msg = "generator ignored GeneratorExit";
        }
        PyErr_SetString(PyExc_RuntimeError, msg);
        __Pyx_Coroutine_unset_is_running(gen);
        return PYGEN_ERROR;
    }
}
static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb,
                                        PyObject *args, int close_on_genexit) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *yf;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen)))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    yf = gen->yieldfrom;
    if (yf) {
        __Pyx_PySendResult result;
        PyObject *ret;
        Py_INCREF(yf);
        if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) {
            int err = __Pyx_Coroutine_CloseIter(gen, yf);
            Py_DECREF(yf);
            __Pyx_Coroutine_Undelegate(gen);
            if (err < 0)
                goto propagate_exception;
            goto throw_here;
        }
        if (0
        #ifdef __Pyx_Generator_USED
            || __Pyx_Generator_CheckExact(yf)
        #endif
        #ifdef __Pyx_Coroutine_USED
            || __Pyx_Coroutine_Check(yf)
        #endif
            ) {
            ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit);
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_CoroutineAwait_CheckExact(yf)) {
            ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit);
        #endif
        } else {
            PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_mstate_global->__pyx_n_u_throw);
            if (unlikely(!meth)) {
                Py_DECREF(yf);
                if (unlikely(PyErr_Occurred())) {
                    __Pyx_Coroutine_unset_is_running(gen);
                    return NULL;
                }
                __Pyx_Coroutine_Undelegate(gen);
                goto throw_here;
            }
            if (likely(args)) {
                ret = __Pyx_PyObject_Call(meth, args, NULL);
            } else {
                PyObject *cargs[4] = {NULL, typ, val, tb};
                ret = __Pyx_PyObject_FastCall(meth, cargs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
            }
            Py_DECREF(meth);
        }
        Py_DECREF(yf);
        if (ret) {
            __Pyx_Coroutine_unset_is_running(gen);
            return ret;
        }
        result = __Pyx_Coroutine_FinishDelegation(gen, &ret);
        __Pyx_Coroutine_unset_is_running(gen);
        return __Pyx_Coroutine_MethodReturnFromResult(self, result, ret, 0);
    }
throw_here:
    __Pyx_Raise(typ, val, tb, NULL);
propagate_exception:
    {
        PyObject *retval = NULL;
        __Pyx_PySendResult result = __Pyx_Coroutine_SendEx(gen, NULL, &retval, 0);
        __Pyx_Coroutine_unset_is_running(gen);
        return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 0);
    }
}
static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) {
    PyObject *typ;
    PyObject *val = NULL;
    PyObject *tb = NULL;
    if (unlikely(!PyArg_UnpackTuple(args, "throw", 1, 3, &typ, &val, &tb)))
        return NULL;
    return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1);
}
static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) {
#if PY_VERSION_HEX >= 0x030B00a4
    Py_VISIT(exc_state->exc_value);
#else
    Py_VISIT(exc_state->exc_type);
    Py_VISIT(exc_state->exc_value);
    Py_VISIT(exc_state->exc_traceback);
#endif
    return 0;
}
static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) {
    {
        int e = __Pyx_call_type_traverse((PyObject*)gen, 1, visit, arg);
        if (e) return e;
    }
    Py_VISIT(gen->closure);
    Py_VISIT(gen->classobj);
    Py_VISIT(gen->yieldfrom);
    return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg);
}
static int __Pyx_Coroutine_clear(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    Py_CLEAR(gen->closure);
    Py_CLEAR(gen->classobj);
    __Pyx_Coroutine_Undelegate(gen);
    __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer);
    }
#endif
    Py_CLEAR(gen->gi_code);
    Py_CLEAR(gen->gi_frame);
    Py_CLEAR(gen->gi_name);
    Py_CLEAR(gen->gi_qualname);
    Py_CLEAR(gen->gi_modulename);
    return 0;
}
static void __Pyx_Coroutine_dealloc(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject_GC_UnTrack(gen);
    #if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    if (gen->gi_weakreflist != NULL)
    #endif
        PyObject_ClearWeakRefs(self);
    if (gen->resume_label >= 0) {
        PyObject_GC_Track(self);
#if CYTHON_USE_TP_FINALIZE
        if (unlikely(PyObject_CallFinalizerFromDealloc(self)))
#else
        {
            destructor del = __Pyx_PyObject_GetSlot(gen, tp_del, destructor);
            if (del) del(self);
        }
        if (unlikely(Py_REFCNT(self) > 0))
#endif
        {
            return;
        }
        PyObject_GC_UnTrack(self);
    }
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        /* We have to handle this case for asynchronous generators
           right here, because this code has to be between UNTRACK
           and GC_Del. */
        Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer);
    }
#endif
    __Pyx_Coroutine_clear(self);
    __Pyx_PyHeapTypeObject_GC_Del(gen);
}
#if CYTHON_USE_TP_FINALIZE
static void __Pyx_Coroutine_del(PyObject *self) {
    PyObject *error_type, *error_value, *error_traceback;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    __Pyx_PyThreadState_declare
    if (gen->resume_label < 0) {
        return;
    }
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self;
        PyObject *finalizer = agen->ag_finalizer;
        if (finalizer && !agen->ag_closed) {
            PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self);
            if (unlikely(!res)) {
                PyErr_WriteUnraisable(self);
            } else {
                Py_DECREF(res);
            }
            __Pyx_ErrRestore(error_type, error_value, error_traceback);
            return;
        }
    }
#endif
    if (unlikely(gen->resume_label == 0 && !error_value)) {
#ifdef __Pyx_Coroutine_USED
#ifdef __Pyx_Generator_USED
    if (!__Pyx_Generator_CheckExact(self))
#endif
        {
        PyObject_GC_UnTrack(self);
        if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0))
            PyErr_WriteUnraisable(self);
        PyObject_GC_Track(self);
        }
#endif
    } else {
        PyObject *retval = NULL;
        __Pyx_PySendResult result = __Pyx_Coroutine_Close(self, &retval);
        if (result == PYGEN_ERROR) {
            PyErr_WriteUnraisable(self);
        } else {
            Py_XDECREF(retval);
        }
    }
    __Pyx_ErrRestore(error_type, error_value, error_traceback);
}
#endif
static PyObject *
__Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, void *context)
{
    PyObject *name = self->gi_name;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(self->gi_name, value);
    return 0;
}
static PyObject *
__Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, void *context)
{
    PyObject *name = self->gi_qualname;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(self->gi_qualname, value);
    return 0;
}
static PyObject *
__Pyx__Coroutine_get_frame(__pyx_CoroutineObject *self)
{
#if !CYTHON_COMPILING_IN_LIMITED_API
    PyObject *frame;
    #if PY_VERSION_HEX >= 0x030d0000
    Py_BEGIN_CRITICAL_SECTION(self);
    #endif
    frame = self->gi_frame;
    if (!frame) {
        if (unlikely(!self->gi_code)) {
            Py_RETURN_NONE;
        }
        PyObject *globals = PyDict_New();
        if (unlikely(!globals)) return NULL;
        frame = (PyObject *) PyFrame_New(
            PyThreadState_Get(),            /*PyThreadState *tstate,*/
            (PyCodeObject*) self->gi_code,  /*PyCodeObject *code,*/
            globals,                        /*PyObject *globals,*/
            0                               /*PyObject *locals*/
        );
        Py_DECREF(globals);
        if (unlikely(!frame))
            return NULL;
        if (unlikely(self->gi_frame)) {
            Py_DECREF(frame);
            frame = self->gi_frame;
        } else {
            self->gi_frame = frame;
        }
    }
    Py_INCREF(frame);
    #if PY_VERSION_HEX >= 0x030d0000
    Py_END_CRITICAL_SECTION();
    #endif
    return frame;
#else
    CYTHON_UNUSED_VAR(self);
    Py_RETURN_NONE;
#endif
}
static PyObject *
__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, void *context) {
    CYTHON_UNUSED_VAR(context);
    PyObject *frame = self->gi_frame;
    if (frame)
        return __Pyx_NewRef(frame);
    return __Pyx__Coroutine_get_frame(self);
}
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
            PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type);
    if (unlikely(!gen))
        return NULL;
    return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name);
}
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    gen->body = body;
    gen->closure = closure;
    Py_XINCREF(closure);
    gen->is_running = 0;
    gen->resume_label = 0;
    gen->classobj = NULL;
    gen->yieldfrom = NULL;
    gen->yieldfrom_am_send = NULL;
    #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_LIMITED_API
    gen->gi_exc_state.exc_value = NULL;
    #else
    gen->gi_exc_state.exc_type = NULL;
    gen->gi_exc_state.exc_value = NULL;
    gen->gi_exc_state.exc_traceback = NULL;
    #endif
#if CYTHON_USE_EXC_INFO_STACK
    gen->gi_exc_state.previous_item = NULL;
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    gen->gi_weakreflist = NULL;
#endif
    Py_XINCREF(qualname);
    gen->gi_qualname = qualname;
    Py_XINCREF(name);
    gen->gi_name = name;
    Py_XINCREF(module_name);
    gen->gi_modulename = module_name;
    Py_XINCREF(code);
    gen->gi_code = code;
    gen->gi_frame = NULL;
    PyObject_GC_Track(gen);
    return gen;
}
static char __Pyx_Coroutine_test_and_set_is_running(__pyx_CoroutineObject *gen) {
    char result;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_BEGIN_CRITICAL_SECTION(gen);
    #endif
    result = gen->is_running;
    gen->is_running = 1;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_END_CRITICAL_SECTION();
    #endif
    return result;
}
static void __Pyx_Coroutine_unset_is_running(__pyx_CoroutineObject *gen) {
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_BEGIN_CRITICAL_SECTION(gen);
    #endif
    assert(gen->is_running);
    gen->is_running = 0;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_END_CRITICAL_SECTION();
    #endif
}
static char __Pyx_Coroutine_get_is_running(__pyx_CoroutineObject *gen) {
    char result;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_BEGIN_CRITICAL_SECTION(gen);
    #endif
    result = gen->is_running;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_END_CRITICAL_SECTION();
    #endif
    return result;
}
static PyObject *__Pyx_Coroutine_get_is_running_getter(PyObject *gen, void *closure) {
    CYTHON_UNUSED_VAR(closure);
    char result = __Pyx_Coroutine_get_is_running((__pyx_CoroutineObject*)gen);
    if (result) Py_RETURN_TRUE;
    else Py_RETURN_FALSE;
}
#if __PYX_HAS_PY_AM_SEND == 2
static void __Pyx_SetBackportTypeAmSend(PyTypeObject *type, __Pyx_PyAsyncMethodsStruct *static_amsend_methods, __Pyx_pyiter_sendfunc am_send) {
    Py_ssize_t ptr_offset = (char*)(type->tp_as_async) - (char*)type;
    if (ptr_offset < 0 || ptr_offset > type->tp_basicsize) {
        return;
    }
    memcpy((void*)static_amsend_methods, (void*)(type->tp_as_async), sizeof(*type->tp_as_async));
    static_amsend_methods->am_send = am_send;
    type->tp_as_async = __Pyx_SlotTpAsAsync(static_amsend_methods);
}
#endif
static PyObject *__Pyx_Coroutine_fail_reduce_ex(PyObject *self, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    __Pyx_TypeName self_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE((PyObject*)self));
    PyErr_Format(PyExc_TypeError, "cannot pickle '" __Pyx_FMT_TYPENAME "' object",
                         self_type_name);
    __Pyx_DECREF_TypeName(self_type_name);
    return NULL;
}

/* Generator (used by GeneratorYieldFrom) */
static PyMethodDef __pyx_Generator_methods[] = {
    {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
     PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
     PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
     PyDoc_STR("close() -> raise GeneratorExit inside generator.")},
    {"__reduce_ex__", (PyCFunction) __Pyx_Coroutine_fail_reduce_ex, METH_O, 0},
    {"__reduce__", (PyCFunction) __Pyx_Coroutine_fail_reduce_ex, METH_NOARGS, 0},
    {0, 0, 0, 0}
};
static PyMemberDef __pyx_Generator_memberlist[] = {
    {"gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     PyDoc_STR("object being iterated by 'yield from', or None")},
    {"gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
    {"__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0},
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyGetSetDef __pyx_Generator_getsets[] = {
    {"__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     PyDoc_STR("name of the generator"), 0},
    {"__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     PyDoc_STR("qualified name of the generator"), 0},
    {"gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
     PyDoc_STR("Frame of the generator"), 0},
    {"gi_running", __Pyx_Coroutine_get_is_running_getter, NULL, NULL, NULL},
    {0, 0, 0, 0, 0}
};
static PyType_Slot __pyx_GeneratorType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc},
    {Py_tp_traverse, (void *)__Pyx_Coroutine_traverse},
    {Py_tp_iter, (void *)PyObject_SelfIter},
    {Py_tp_iternext, (void *)__Pyx_Generator_Next},
    {Py_tp_methods, (void *)__pyx_Generator_methods},
    {Py_tp_members, (void *)__pyx_Generator_memberlist},
    {Py_tp_getset, (void *)__pyx_Generator_getsets},
    {Py_tp_getattro, (void *) PyObject_GenericGetAttr},
#if CYTHON_USE_TP_FINALIZE
    {Py_tp_finalize, (void *)__Pyx_Coroutine_del},
#endif
#if __PYX_HAS_PY_AM_SEND == 1
    {Py_am_send, (void *)__Pyx_Coroutine_AmSend},
#endif
    {0, 0},
};
static PyType_Spec __pyx_GeneratorType_spec = {
    __PYX_TYPE_MODULE_PREFIX "generator",
    sizeof(__pyx_CoroutineObject),
    0,
#if PY_VERSION_HEX >= 0x030C0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_TPFLAGS_MANAGED_WEAKREF |
#endif
    Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION |
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | __Pyx_TPFLAGS_HAVE_AM_SEND,
    __pyx_GeneratorType_slots
};
#if __PYX_HAS_PY_AM_SEND == 2
static __Pyx_PyAsyncMethodsStruct __pyx_Generator_as_async;
#endif
static int __pyx_Generator_init(PyObject *module) {
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
    mstate->__pyx_GeneratorType = __Pyx_FetchCommonTypeFromSpec(
        mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_GeneratorType_spec, NULL);
    if (unlikely(!mstate->__pyx_GeneratorType)) {
        return -1;
    }
#if __PYX_HAS_PY_AM_SEND == 2
    __Pyx_SetBackportTypeAmSend(mstate->__pyx_GeneratorType, &__pyx_Generator_as_async, &__Pyx_Coroutine_AmSend);
#endif
    return 0;
}
static PyObject *__Pyx_Generator_GetInlinedResult(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *retval = NULL;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    }
    __Pyx_PySendResult result = __Pyx_Coroutine_SendEx(gen, Py_None, &retval, 0);
    __Pyx_Coroutine_unset_is_running(gen);
    (void) result;
    assert (result == PYGEN_RETURN || result == PYGEN_ERROR);
    assert ((result == PYGEN_RETURN && retval != NULL) || (result == PYGEN_ERROR && retval == NULL));
    return retval;
}

/* GeneratorYieldFrom */
#if CYTHON_USE_TYPE_SLOTS
static void __Pyx_PyIter_CheckErrorAndDecref(PyObject *source) {
    __Pyx_TypeName source_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(source));
    PyErr_Format(PyExc_TypeError,
        "iter() returned non-iterator of type '" __Pyx_FMT_TYPENAME "'", source_type_name);
    __Pyx_DECREF_TypeName(source_type_name);
    Py_DECREF(source);
}
#endif
static CYTHON_INLINE __Pyx_PySendResult __Pyx_Generator_Yield_From(__pyx_CoroutineObject *gen, PyObject *source, PyObject **retval) {
    PyObject *source_gen;
    __Pyx_PySendResult result;
#ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(source)) {
        Py_INCREF(source);
        source_gen = source;
        result = __Pyx_Coroutine_AmSend(source, Py_None, retval);
    } else
#endif
    {
#if CYTHON_USE_TYPE_SLOTS
        if (likely(Py_TYPE(source)->tp_iter)) {
            source_gen = Py_TYPE(source)->tp_iter(source);
            if (unlikely(!source_gen)) {
                *retval = NULL;
                return PYGEN_ERROR;
            }
            if (unlikely(!PyIter_Check(source_gen))) {
                __Pyx_PyIter_CheckErrorAndDecref(source_gen);
                *retval = NULL;
                return PYGEN_ERROR;
            }
        } else
#endif
        {
            source_gen = PyObject_GetIter(source);
            if (unlikely(!source_gen)) {
                *retval = NULL;
                return PYGEN_ERROR;
            }
        }
        *retval = __Pyx_PyIter_Next_Plain(source_gen);
        result = __Pyx_Coroutine_status_from_result(retval);
    }
    if (likely(result == PYGEN_NEXT)) {
        __Pyx_Coroutine_Set_Owned_Yield_From(gen, source_gen);
        return PYGEN_NEXT;
    }
    Py_DECREF(source_gen);
    return result;
}

/* CIntToPyUnicode */
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_long(long value, Py_ssize_t width, char padding_char) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!(is_unsigned || value == 0 || value > 0) ||
                    !(sizeof(value) <= 2 || value & ~ (long) 0x01fffff || __Pyx_CheckUnicodeValue((int) value)))) {
        PyErr_SetString(PyExc_OverflowError, "%c arg not in range(0x110000)");
        return NULL;
    }
    if (width <= 1) {
        return PyUnicode_FromOrdinal((int) value);
    }
    return __Pyx_PyUnicode_FromOrdinal_Padded((int) value, width, padding_char);
}
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_long(long value, Py_ssize_t width, char padding_char, char format_char) {
    char digits[sizeof(long)*3+2];
    char *dpos, *end = digits + sizeof(long)*3+2;
    const char *hex_digits = DIGITS_HEX;
    Py_ssize_t length, ulength;
    int prepend_sign, last_one_off;
    long remaining;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (format_char == 'X') {
        hex_digits += 16;
        format_char = 'x';
    }
    remaining = value;
    last_one_off = 0;
    dpos = end;
    do {
        int digit_pos;
        switch (format_char) {
        case 'o':
            digit_pos = abs((int)(remaining % (8*8)));
            remaining = (long) (remaining / (8*8));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 8);
            break;
        case 'd':
            digit_pos = abs((int)(remaining % (10*10)));
            remaining = (long) (remaining / (10*10));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 10);
            break;
        case 'x':
            *(--dpos) = hex_digits[abs((int)(remaining % 16))];
            remaining = (long) (remaining / 16);
            break;
        default:
            assert(0);
            break;
        }
    } while (unlikely(remaining != 0));
    assert(!last_one_off || *dpos == '0');
    dpos += last_one_off;
    length = end - dpos;
    ulength = length;
    prepend_sign = 0;
    if (!is_unsigned && value <= neg_one) {
        if (padding_char == ' ' || width <= length + 1) {
            *(--dpos) = '-';
            ++length;
        } else {
            prepend_sign = 1;
        }
        ++ulength;
    }
    if (width > ulength) {
        ulength = width;
    }
    if (ulength == 1) {
        return PyUnicode_FromOrdinal(*dpos);
    }
    return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
}

/* CIntToPyUnicode */
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_uint8_t(uint8_t value, Py_ssize_t width, char padding_char) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint8_t neg_one = (uint8_t) -1, const_zero = (uint8_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!(is_unsigned || value == 0 || value > 0) ||
                    !(sizeof(value) <= 2 || value & ~ (uint8_t) 0x01fffff || __Pyx_CheckUnicodeValue((int) value)))) {
        PyErr_SetString(PyExc_OverflowError, "%c arg not in range(0x110000)");
        return NULL;
    }
    if (width <= 1) {
        return PyUnicode_FromOrdinal((int) value);
    }
    return __Pyx_PyUnicode_FromOrdinal_Padded((int) value, width, padding_char);
}
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_uint8_t(uint8_t value, Py_ssize_t width, char padding_char, char format_char) {
    char digits[sizeof(uint8_t)*3+2];
    char *dpos, *end = digits + sizeof(uint8_t)*3+2;
    const char *hex_digits = DIGITS_HEX;
    Py_ssize_t length, ulength;
    int prepend_sign, last_one_off;
    uint8_t remaining;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint8_t neg_one = (uint8_t) -1, const_zero = (uint8_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (format_char == 'X') {
        hex_digits += 16;
        format_char = 'x';
    }
    remaining = value;
    last_one_off = 0;
    dpos = end;
    do {
        int digit_pos;
        switch (format_char) {
        case 'o':
            digit_pos = abs((int)(remaining % (8*8)));
            remaining = (uint8_t) (remaining / (8*8));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 8);
            break;
        case 'd':
            digit_pos = abs((int)(remaining % (10*10)));
            remaining = (uint8_t) (remaining / (10*10));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 10);
            break;
        case 'x':
            *(--dpos) = hex_digits[abs((int)(remaining % 16))];
            remaining = (uint8_t) (remaining / 16);
            break;
        default:
            assert(0);
            break;
        }
    } while (unlikely(remaining != 0));
    assert(!last_one_off || *dpos == '0');
    dpos += last_one_off;
    length = end - dpos;
    ulength = length;
    prepend_sign = 0;
    if (!is_unsigned && value <= neg_one) {
        if (padding_char == ' ' || width <= length + 1) {
            *(--dpos) = '-';
            ++length;
        } else {
            prepend_sign = 1;
        }
        ++ulength;
    }
    if (width > ulength) {
        ulength = width;
    }
    if (ulength == 1) {
        return PyUnicode_FromOrdinal(*dpos);
    }
    return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
}

/* CIntToPyUnicode */
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_uint16_t(uint16_t value, Py_ssize_t width, char padding_char) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint16_t neg_one = (uint16_t) -1, const_zero = (uint16_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!(is_unsigned || value == 0 || value > 0) ||
                    !(sizeof(value) <= 2 || value & ~ (uint16_t) 0x01fffff || __Pyx_CheckUnicodeValue((int) value)))) {
        PyErr_SetString(PyExc_OverflowError, "%c arg not in range(0x110000)");
        return NULL;
    }
    if (width <= 1) {
        return PyUnicode_FromOrdinal((int) value);
    }
    return __Pyx_PyUnicode_FromOrdinal_Padded((int) value, width, padding_char);
}
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_uint16_t(uint16_t value, Py_ssize_t width, char padding_char, char format_char) {
    char digits[sizeof(uint16_t)*3+2];
    char *dpos, *end = digits + sizeof(uint16_t)*3+2;
    const char *hex_digits = DIGITS_HEX;
    Py_ssize_t length, ulength;
    int prepend_sign, last_one_off;
    uint16_t remaining;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint16_t neg_one = (uint16_t) -1, const_zero = (uint16_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (format_char == 'X') {
        hex_digits += 16;
        format_char = 'x';
    }
    remaining = value;
    last_one_off = 0;
    dpos = end;
    do {
        int digit_pos;
        switch (format_char) {
        case 'o':
            digit_pos = abs((int)(remaining % (8*8)));
            remaining = (uint16_t) (remaining / (8*8));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 8);
            break;
        case 'd':
            digit_pos = abs((int)(remaining % (10*10)));
            remaining = (uint16_t) (remaining / (10*10));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 10);
            break;
        case 'x':
            *(--dpos) = hex_digits[abs((int)(remaining % 16))];
            remaining = (uint16_t) (remaining / 16);
            break;
        default:
            assert(0);
            break;
        }
    } while (unlikely(remaining != 0));
    assert(!last_one_off || *dpos == '0');
    dpos += last_one_off;
    length = end - dpos;
    ulength = length;
    prepend_sign = 0;
    if (!is_unsigned && value <= neg_one) {
        if (padding_char == ' ' || width <= length + 1) {
            *(--dpos) = '-';
            ++length;
        } else {
            prepend_sign = 1;
        }
        ++ulength;
    }
    if (width > ulength) {
        ulength = width;
    }
    if (ulength == 1) {
        return PyUnicode_FromOrdinal(*dpos);
    }
    return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
}

/* PyLongBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_Fallback___Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, int inplace) {
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#if CYTHON_USE_PYLONG_INTERNALS
static PyObject* __Pyx_Unpacked___Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    long a;
    const PY_LONG_LONG llb = intval;
    PY_LONG_LONG lla;
    if (unlikely(__Pyx_PyLong_IsZero(op1))) {
        return __Pyx_NewRef(op2);
    }
    const int is_positive = __Pyx_PyLong_IsPos(op1);
    const digit* digits = __Pyx_PyLong_Digits(op1);
    const Py_ssize_t size = __Pyx_PyLong_DigitCount(op1);
    if (likely(size == 1)) {
        a = (long) digits[0];
        if (!is_positive) a *= -1;
    } else {
        switch (size) {
            case 2:
                if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                    a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    if (!is_positive) a *= -1;
                    goto calculate_long;
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    if (!is_positive) lla *= -1;
                    goto calculate_long_long;
                }
                break;
            case 3:
                if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                    a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    if (!is_positive) a *= -1;
                    goto calculate_long;
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    if (!is_positive) lla *= -1;
                    goto calculate_long_long;
                }
                break;
            case 4:
                if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                    a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    if (!is_positive) a *= -1;
                    goto calculate_long;
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    if (!is_positive) lla *= -1;
                    goto calculate_long_long;
                }
                break;
        }
        return PyLong_Type.tp_as_number->nb_add(op1, op2);
    }
    calculate_long:
        {
            long x;
            x = a + b;
            return PyLong_FromLong(x);
        }
    calculate_long_long:
        {
            PY_LONG_LONG llx;
            llx = lla + llb;
            return PyLong_FromLongLong(llx);
        }
    
}
#endif
static PyObject* __Pyx_Float___Pyx_PyLong_AddObjC(PyObject *float_val, long intval, int zerodivision_check) {
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    double a = __Pyx_PyFloat_AS_DOUBLE(float_val);
        double result;
        
        result = ((double)a) + (double)b;
        return PyFloat_FromDouble(result);
}
static CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        return __Pyx_Unpacked___Pyx_PyLong_AddObjC(op1, op2, intval, inplace, zerodivision_check);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        return __Pyx_Float___Pyx_PyLong_AddObjC(op1, intval, zerodivision_check);
    }
    return __Pyx_Fallback___Pyx_PyLong_AddObjC(op1, op2, inplace);
}
#endif

/* AllocateExtensionType */
static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final) {
    if (is_final || likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
        allocfunc alloc_func = __Pyx_PyType_GetSlot(t, tp_alloc, allocfunc);
        return alloc_func(t, 0);
    } else {
        newfunc tp_new = __Pyx_PyType_TryGetSlot(&PyBaseObject_Type, tp_new, newfunc);
    #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
        if (!tp_new) {
            PyObject *new_str = PyUnicode_FromString("__new__");
            if (likely(new_str)) {
                PyObject *o = PyObject_CallMethodObjArgs((PyObject *)&PyBaseObject_Type, new_str, t, NULL);
                Py_DECREF(new_str);
                return o;
            } else
                return NULL;
        } else
    #endif
        return tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
    }
}

/* ValidateBasesTuple (used by PyType_Ready) */
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) {
    Py_ssize_t i, n;
#if CYTHON_ASSUME_SAFE_SIZE
    n = PyTuple_GET_SIZE(bases);
#else
    n = PyTuple_Size(bases);
    if (unlikely(n < 0)) return -1;
#endif
    for (i = 1; i < n; i++)
    {
        PyTypeObject *b;
#if CYTHON_AVOID_BORROWED_REFS
        PyObject *b0 = PySequence_GetItem(bases, i);
        if (!b0) return -1;
#elif CYTHON_ASSUME_SAFE_MACROS
        PyObject *b0 = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *b0 = PyTuple_GetItem(bases, i);
        if (!b0) return -1;
#endif
        b = (PyTypeObject*) b0;
        if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE))
        {
            __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(b);
            PyErr_Format(PyExc_TypeError,
                "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name);
            __Pyx_DECREF_TypeName(b_name);
#if CYTHON_AVOID_BORROWED_REFS
            Py_DECREF(b0);
#endif
            return -1;
        }
        if (dictoffset == 0)
        {
            Py_ssize_t b_dictoffset = 0;
#if CYTHON_USE_TYPE_SLOTS
            b_dictoffset = b->tp_dictoffset;
#else
            PyObject *py_b_dictoffset = PyObject_GetAttrString((PyObject*)b, "__dictoffset__");
            if (!py_b_dictoffset) goto dictoffset_return;
            b_dictoffset = PyLong_AsSsize_t(py_b_dictoffset);
            Py_DECREF(py_b_dictoffset);
            if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return;
#endif
            if (b_dictoffset) {
                {
                    __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(b);
                    PyErr_Format(PyExc_TypeError,
                        "extension type '%.200s' has no __dict__ slot, "
                        "but base type '" __Pyx_FMT_TYPENAME "' has: "
                        "either add 'cdef dict __dict__' to the extension type "
                        "or add '__slots__ = [...]' to the base type",
                        type_name, b_name);
                    __Pyx_DECREF_TypeName(b_name);
                }
#if !CYTHON_USE_TYPE_SLOTS
              dictoffset_return:
#endif
#if CYTHON_AVOID_BORROWED_REFS
                Py_DECREF(b0);
#endif
                return -1;
            }
        }
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(b0);
#endif
    }
    return 0;
}
#endif

/* PyType_Ready */
CYTHON_UNUSED static int __Pyx_PyType_HasMultipleInheritance(PyTypeObject *t) {
    while (t) {
        PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
        if (bases) {
            return 1;
        }
        t = __Pyx_PyType_GetSlot(t, tp_base, PyTypeObject*);
    }
    return 0;
}
static int __Pyx_PyType_Ready(PyTypeObject *t) {
#if CYTHON_USE_TYPE_SPECS || !CYTHON_COMPILING_IN_CPYTHON || defined(PYSTON_MAJOR_VERSION)
    (void)__Pyx_PyObject_CallMethod0;
#if CYTHON_USE_TYPE_SPECS
    (void)__Pyx_validate_bases_tuple;
#endif
    return PyType_Ready(t);
#else
    int r;
    if (!__Pyx_PyType_HasMultipleInheritance(t)) {
        return PyType_Ready(t);
    }
    PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
    if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1))
        return -1;
#if !defined(PYSTON_MAJOR_VERSION)
    {
        int gc_was_enabled;
    #if PY_VERSION_HEX >= 0x030A00b1
        gc_was_enabled = PyGC_Disable();
        (void)__Pyx_PyObject_CallMethod0;
    #else
        PyObject *ret, *py_status;
        PyObject *gc = NULL;
        #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) &&\
                !CYTHON_COMPILING_IN_GRAAL
        gc = PyImport_GetModule(__pyx_mstate_global->__pyx_kp_u_gc);
        #endif
        if (unlikely(!gc)) gc = PyImport_Import(__pyx_mstate_global->__pyx_kp_u_gc);
        if (unlikely(!gc)) return -1;
        py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_isenabled);
        if (unlikely(!py_status)) {
            Py_DECREF(gc);
            return -1;
        }
        gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
        Py_DECREF(py_status);
        if (gc_was_enabled > 0) {
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_disable);
            if (unlikely(!ret)) {
                Py_DECREF(gc);
                return -1;
            }
            Py_DECREF(ret);
        } else if (unlikely(gc_was_enabled == -1)) {
            Py_DECREF(gc);
            return -1;
        }
    #endif
        t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
#if PY_VERSION_HEX >= 0x030A0000
        t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE;
#endif
#else
        (void)__Pyx_PyObject_CallMethod0;
#endif
    r = PyType_Ready(t);
#if !defined(PYSTON_MAJOR_VERSION)
        t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
    #if PY_VERSION_HEX >= 0x030A00b1
        if (gc_was_enabled)
            PyGC_Enable();
    #else
        if (gc_was_enabled) {
            PyObject *tp, *v, *tb;
            PyErr_Fetch(&tp, &v, &tb);
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_enable);
            if (likely(ret || r == -1)) {
                Py_XDECREF(ret);
                PyErr_Restore(tp, v, tb);
            } else {
                Py_XDECREF(tp);
                Py_XDECREF(v);
                Py_XDECREF(tb);
                r = -1;
            }
        }
        Py_DECREF(gc);
    #endif
    }
#endif
    return r;
#endif
}

/* DelItemOnTypeDict (used by SetupReduce) */
static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k) {
    int result;
    PyObject *tp_dict;
#if CYTHON_COMPILING_IN_LIMITED_API
    tp_dict = __Pyx_GetTypeDict(tp);
    if (unlikely(!tp_dict)) return -1;
#else
    tp_dict = tp->tp_dict;
#endif
    result = PyDict_DelItem(tp_dict, k);
    if (likely(!result)) PyType_Modified(tp);
    return result;
}

/* SetupReduce */
static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
  int ret;
  PyObject *name_attr;
  name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_mstate_global->__pyx_n_u_name_2);
  if (likely(name_attr)) {
      ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
  } else {
      ret = -1;
  }
  if (unlikely(ret < 0)) {
      PyErr_Clear();
      ret = 0;
  }
  Py_XDECREF(name_attr);
  return ret;
}
static int __Pyx_setup_reduce(PyObject* type_obj) {
    int ret = 0;
    PyObject *object_reduce = NULL;
    PyObject *object_getstate = NULL;
    PyObject *object_reduce_ex = NULL;
    PyObject *reduce = NULL;
    PyObject *reduce_ex = NULL;
    PyObject *reduce_cython = NULL;
    PyObject *setstate = NULL;
    PyObject *setstate_cython = NULL;
    PyObject *getstate = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
    getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_getstate);
#else
    getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_getstate);
    if (!getstate && PyErr_Occurred()) {
        goto __PYX_BAD;
    }
#endif
    if (getstate) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate);
#else
        object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate);
        if (!object_getstate && PyErr_Occurred()) {
            goto __PYX_BAD;
        }
#endif
        if (object_getstate != getstate) {
            goto __PYX_GOOD;
        }
    }
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
    if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce); if (!object_reduce) goto __PYX_BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce); if (!object_reduce) goto __PYX_BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_mstate_global->__pyx_n_u_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython);
            if (likely(reduce_cython)) {
                ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
            } else if (reduce == object_reduce || PyErr_Occurred()) {
                goto __PYX_BAD;
            }
            setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate);
            if (!setstate) PyErr_Clear();
            if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_mstate_global->__pyx_n_u_setstate_cython)) {
                setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython);
                if (likely(setstate_cython)) {
                    ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                    ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                } else if (!setstate || PyErr_Occurred()) {
                    goto __PYX_BAD;
                }
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto __PYX_GOOD;
__PYX_BAD:
    if (!PyErr_Occurred()) {
        __Pyx_TypeName type_obj_name =
            __Pyx_PyType_GetFullyQualifiedName((PyTypeObject*)type_obj);
        PyErr_Format(PyExc_RuntimeError,
            "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name);
        __Pyx_DECREF_TypeName(type_obj_name);
    }
    ret = -1;
__PYX_GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
    Py_XDECREF(object_reduce);
    Py_XDECREF(object_reduce_ex);
    Py_XDECREF(object_getstate);
    Py_XDECREF(getstate);
#endif
    Py_XDECREF(reduce);
    Py_XDECREF(reduce_ex);
    Py_XDECREF(reduce_cython);
    Py_XDECREF(setstate);
    Py_XDECREF(setstate_cython);
    return ret;
}

/* FormatTypeName (used by ValidateExternBase) */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
static __Pyx_TypeName
__Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp)
{
    PyObject *module = NULL, *name = NULL, *result = NULL;
    #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
    name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
                                               __pyx_mstate_global->__pyx_n_u_qualname);
    #else
    name = PyType_GetQualName(tp);
    #endif
    if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) goto bad;
    module = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
                                               __pyx_mstate_global->__pyx_n_u_module);
    if (unlikely(module == NULL) || unlikely(!PyUnicode_Check(module))) goto bad;
    if (PyUnicode_CompareWithASCIIString(module, "builtins") == 0) {
        result = name;
        name = NULL;
        goto done;
    }
    result = PyUnicode_FromFormat("%U.%U", module, name);
    if (unlikely(result == NULL)) goto bad;
  done:
    Py_XDECREF(name);
    Py_XDECREF(module);
    return result;
  bad:
    PyErr_Clear();
    if (name) {
        result = name;
        name = NULL;
    } else {
        result = __Pyx_NewRef(__pyx_mstate_global->__pyx_kp_u__35);
    }
    goto done;
}
#endif

/* ValidateExternBase */
static int __Pyx_validate_extern_base(PyTypeObject *base) {
    Py_ssize_t itemsize;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_itemsize;
#endif
#if !CYTHON_COMPILING_IN_LIMITED_API
    itemsize = ((PyTypeObject *)base)->tp_itemsize;
#else
    py_itemsize = PyObject_GetAttrString((PyObject*)base, "__itemsize__");
    if (!py_itemsize)
        return -1;
    itemsize = PyLong_AsSsize_t(py_itemsize);
    Py_DECREF(py_itemsize);
    py_itemsize = 0;
    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
        return -1;
#endif
    if (itemsize) {
        __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(base);
        PyErr_Format(PyExc_TypeError,
                "inheritance from PyVarObject types like '" __Pyx_FMT_TYPENAME "' not currently supported", b_name);
        __Pyx_DECREF_TypeName(b_name);
        return -1;
    }
    return 0;
}

/* SetVTable */
static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) {
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
    if (unlikely(!ob))
        goto bad;
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0))
#else
    if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0))
#endif
        goto bad;
    Py_DECREF(ob);
    return 0;
bad:
    Py_XDECREF(ob);
    return -1;
}

/* GetVTable (used by MergeVTables) */
static void* __Pyx_GetVtable(PyTypeObject *type) {
    void* ptr;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_mstate_global->__pyx_n_u_pyx_vtable);
#else
    PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable);
#endif
    if (!ob)
        goto bad;
    ptr = PyCapsule_GetPointer(ob, 0);
    if (!ptr && !PyErr_Occurred())
        PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
    Py_DECREF(ob);
    return ptr;
bad:
    Py_XDECREF(ob);
    return NULL;
}

/* MergeVTables */
static int __Pyx_MergeVtables(PyTypeObject *type) {
    int i=0;
    Py_ssize_t size;
    void** base_vtables;
    __Pyx_TypeName tp_base_name = NULL;
    __Pyx_TypeName base_name = NULL;
    void* unknown = (void*)-1;
    PyObject* bases = __Pyx_PyType_GetSlot(type, tp_bases, PyObject*);
    int base_depth = 0;
    {
        PyTypeObject* base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
        while (base) {
            base_depth += 1;
            base = __Pyx_PyType_GetSlot(base, tp_base, PyTypeObject*);
        }
    }
    base_vtables = (void**) PyMem_Malloc(sizeof(void*) * (size_t)(base_depth + 1));
    base_vtables[0] = unknown;
#if CYTHON_COMPILING_IN_LIMITED_API
    size = PyTuple_Size(bases);
    if (size < 0) goto other_failure;
#else
    size = PyTuple_GET_SIZE(bases);
#endif
    for (i = 1; i < size; i++) {
        PyObject *basei;
        void* base_vtable;
#if CYTHON_AVOID_BORROWED_REFS
        basei = PySequence_GetItem(bases, i);
        if (unlikely(!basei)) goto other_failure;
#elif !CYTHON_ASSUME_SAFE_MACROS
        basei = PyTuple_GetItem(bases, i);
        if (unlikely(!basei)) goto other_failure;
#else
        basei = PyTuple_GET_ITEM(bases, i);
#endif
        base_vtable = __Pyx_GetVtable((PyTypeObject*)basei);
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(basei);
#endif
        if (base_vtable != NULL) {
            int j;
            PyTypeObject* base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
            for (j = 0; j < base_depth; j++) {
                if (base_vtables[j] == unknown) {
                    base_vtables[j] = __Pyx_GetVtable(base);
                    base_vtables[j + 1] = unknown;
                }
                if (base_vtables[j] == base_vtable) {
                    break;
                } else if (base_vtables[j] == NULL) {
                    goto bad;
                }
                base = __Pyx_PyType_GetSlot(base, tp_base, PyTypeObject*);
            }
        }
    }
    PyErr_Clear();
    PyMem_Free(base_vtables);
    return 0;
bad:
    {
        PyTypeObject* basei = NULL;
        PyTypeObject* tp_base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
        tp_base_name = __Pyx_PyType_GetFullyQualifiedName(tp_base);
#if CYTHON_AVOID_BORROWED_REFS
        basei = (PyTypeObject*)PySequence_GetItem(bases, i);
        if (unlikely(!basei)) goto really_bad;
#elif !CYTHON_ASSUME_SAFE_MACROS
        basei = (PyTypeObject*)PyTuple_GetItem(bases, i);
        if (unlikely(!basei)) goto really_bad;
#else
        basei = (PyTypeObject*)PyTuple_GET_ITEM(bases, i);
#endif
        base_name = __Pyx_PyType_GetFullyQualifiedName(basei);
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(basei);
#endif
    }
    PyErr_Format(PyExc_TypeError,
        "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name);
#if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
really_bad: // bad has failed!
#endif
    __Pyx_DECREF_TypeName(tp_base_name);
    __Pyx_DECREF_TypeName(base_name);
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
other_failure:
#endif
    PyMem_Free(base_vtables);
    return -1;
}

/* TypeImport */
#ifndef __PYX_HAVE_RT_ImportType_3_2_4
#define __PYX_HAVE_RT_ImportType_3_2_4
static PyTypeObject *__Pyx_ImportType_3_2_4(PyObject *module, const char *module_name, const char *class_name,
    size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_4 check_size)
{
    PyObject *result = 0;
    Py_ssize_t basicsize;
    Py_ssize_t itemsize;
#if defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API)
    PyObject *py_basicsize;
    PyObject *py_itemsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#if !( defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API) )
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
    itemsize = ((PyTypeObject *)result)->tp_itemsize;
#else
    if (size == 0) {
        return (PyTypeObject *)result;
    }
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
    py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
    if (!py_itemsize)
        goto bad;
    itemsize = PyLong_AsSsize_t(py_itemsize);
    Py_DECREF(py_itemsize);
    py_itemsize = 0;
    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if (itemsize) {
        if (size % alignment) {
            alignment = size % alignment;
        }
        if (itemsize < (Py_ssize_t)alignment)
            itemsize = (Py_ssize_t)alignment;
    }
    if ((size_t)(basicsize + itemsize) < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize+itemsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error_3_2_4 &&
            ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd-%zd from PyObject",
            module_name, class_name, size, basicsize, basicsize+itemsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_2_4 && (size_t)basicsize > size) {
        if (PyErr_WarnFormat(NULL, 0,
                "%.200s.%.200s size changed, may indicate binary incompatibility. "
                "Expected %zd from C header, got %zd from PyObject",
                module_name, class_name, size, basicsize) < 0) {
            goto bad;
        }
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* HasAttr (used by ImportImpl) */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
    PyObject *r;
    if (unlikely(!PyUnicode_Check(n))) {
        PyErr_SetString(PyExc_TypeError,
                        "hasattr(): attribute name must be string");
        return -1;
    }
    r = __Pyx_PyObject_GetAttrStrNoError(o, n);
    if (!r) {
        return (unlikely(PyErr_Occurred())) ? -1 : 0;
    } else {
        Py_DECREF(r);
        return 1;
    }
}
#endif

/* ImportImpl (used by Import) */
static int __Pyx__Import_GetModule(PyObject *qualname, PyObject **module) {
    PyObject *imported_module = PyImport_GetModule(qualname);
    if (unlikely(!imported_module)) {
        *module = NULL;
        if (PyErr_Occurred()) {
            return -1;
        }
        return 0;
    }
    *module = imported_module;
    return 1;
}
static int __Pyx__Import_Lookup(PyObject *qualname, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject **module) {
    PyObject *imported_module;
    PyObject *top_level_package_name;
    Py_ssize_t i;
    int status, module_found;
    Py_ssize_t dot_index;
    module_found = __Pyx__Import_GetModule(qualname, &imported_module);
    if (unlikely(!module_found || module_found == -1)) {
        *module = NULL;
        return module_found;
    }
    if (imported_names) {
        for (i = 0; i < len_imported_names; i++) {
            PyObject *imported_name = imported_names[i];
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
            int has_imported_attribute = PyObject_HasAttr(imported_module, imported_name);
#else
            int has_imported_attribute = PyObject_HasAttrWithError(imported_module, imported_name);
            if (unlikely(has_imported_attribute == -1)) goto error;
#endif
            if (!has_imported_attribute) {
                goto not_found;
            }
        }
        *module = imported_module;
        return 1;
    }
    dot_index = PyUnicode_FindChar(qualname, '.', 0, PY_SSIZE_T_MAX, 1);
    if (dot_index == -1) {
        *module = imported_module;
        return 1;
    }
    if (unlikely(dot_index == -2)) goto error;
    top_level_package_name = PyUnicode_Substring(qualname, 0, dot_index);
    if (unlikely(!top_level_package_name)) goto error;
    Py_DECREF(imported_module);
    status = __Pyx__Import_GetModule(top_level_package_name, module);
    Py_DECREF(top_level_package_name);
    return status;
error:
    Py_DECREF(imported_module);
    *module = NULL;
    return -1;
not_found:
    Py_DECREF(imported_module);
    *module = NULL;
    return 0;
}
static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level) {
    PyObject *module = 0;
    PyObject *empty_dict = 0;
    PyObject *from_list = 0;
    int module_found;
    if (!qualname) {
        qualname = name;
    }
    module_found = __Pyx__Import_Lookup(qualname, imported_names, len_imported_names, &module);
    if (likely(module_found == 1)) {
        return module;
    } else if (unlikely(module_found == -1)) {
        return NULL;
    }
    empty_dict = PyDict_New();
    if (unlikely(!empty_dict))
        goto bad;
    if (imported_names) {
#if CYTHON_COMPILING_IN_CPYTHON
        from_list = __Pyx_PyList_FromArray(imported_names, len_imported_names);
        if (unlikely(!from_list))
            goto bad;
#else
        from_list = PyList_New(len_imported_names);
        if (unlikely(!from_list)) goto bad;
        for (Py_ssize_t i=0; i<len_imported_names; ++i) {
            if (PyList_SetItem(from_list, i, __Pyx_NewRef(imported_names[i])) < 0) goto bad;
        }
#endif
    }
    if (level == -1) {
        const char* package_sep = strchr(__Pyx_MODULE_NAME, '.');
        if (package_sep != (0)) {
            module = PyImport_ImportModuleLevelObject(
                name, moddict, empty_dict, from_list, 1);
            if (unlikely(!module)) {
                if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))
                    goto bad;
                PyErr_Clear();
            }
        }
        level = 0;
    }
    if (!module) {
        module = PyImport_ImportModuleLevelObject(
            name, moddict, empty_dict, from_list, level);
    }
bad:
    Py_XDECREF(from_list);
    Py_XDECREF(empty_dict);
    return module;
}

/* Import */
static PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level) {
    return __Pyx__Import(name, imported_names, len_imported_names, qualname, __pyx_mstate_global->__pyx_d, level);
}

/* ImportFrom */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        const char* module_name_str = 0;
        PyObject* module_name = 0;
        PyObject* module_dot = 0;
        PyObject* full_name = 0;
        PyErr_Clear();
        module_name_str = PyModule_GetName(module);
        if (unlikely(!module_name_str)) { goto modbad; }
        module_name = PyUnicode_FromString(module_name_str);
        if (unlikely(!module_name)) { goto modbad; }
        module_dot = PyUnicode_Concat(module_name, __pyx_mstate_global->__pyx_kp_u__14);
        if (unlikely(!module_dot)) { goto modbad; }
        full_name = PyUnicode_Concat(module_dot, name);
        if (unlikely(!full_name)) { goto modbad; }
        #if (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400) ||\
                CYTHON_COMPILING_IN_GRAAL
        {
            PyObject *modules = PyImport_GetModuleDict();
            if (unlikely(!modules))
                goto modbad;
            value = PyObject_GetItem(modules, full_name);
        }
        #else
        value = PyImport_GetModule(full_name);
        #endif
      modbad:
        Py_XDECREF(full_name);
        Py_XDECREF(module_dot);
        Py_XDECREF(module_name);
    }
    if (unlikely(!value)) {
        PyErr_Format(PyExc_ImportError, "cannot import name %S", name);
    }
    return value;
}

/* Py3UpdateBases */
static PyObject*
__Pyx_PEP560_update_bases(PyObject *bases)
{
    Py_ssize_t i, j, size_bases;
    PyObject *base = NULL, *meth, *new_base, *result, *new_bases = NULL;
#if CYTHON_ASSUME_SAFE_SIZE
    size_bases = PyTuple_GET_SIZE(bases);
#else
    size_bases = PyTuple_Size(bases);
    if (size_bases < 0) return NULL;
#endif
    for (i = 0; i < size_bases; i++) {
#if CYTHON_AVOID_BORROWED_REFS
        Py_CLEAR(base);
#endif
#if CYTHON_ASSUME_SAFE_MACROS
        base = PyTuple_GET_ITEM(bases, i);
#else
        base = PyTuple_GetItem(bases, i);
        if (!base) goto error;
#endif
#if CYTHON_AVOID_BORROWED_REFS
        Py_INCREF(base);
#endif
        if (PyType_Check(base)) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        meth = __Pyx_PyObject_GetAttrStrNoError(base, __pyx_mstate_global->__pyx_n_u_mro_entries);
        if (!meth && PyErr_Occurred()) {
            goto error;
        }
        if (!meth) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        new_base = __Pyx_PyObject_CallOneArg(meth, bases);
        Py_DECREF(meth);
        if (!new_base) {
            goto error;
        }
        if (!PyTuple_Check(new_base)) {
            PyErr_SetString(PyExc_TypeError,
                            "__mro_entries__ must return a tuple");
            Py_DECREF(new_base);
            goto error;
        }
        if (!new_bases) {
            if (!(new_bases = PyList_New(i))) {
                goto error;
            }
            for (j = 0; j < i; j++) {
                PyObject *base_from_list;
#if CYTHON_ASSUME_SAFE_MACROS
                base_from_list = PyTuple_GET_ITEM(bases, j);
                PyList_SET_ITEM(new_bases, j, base_from_list);
                Py_INCREF(base_from_list);
#else
                base_from_list = PyTuple_GetItem(bases, j);
                if (!base_from_list) goto error;
                Py_INCREF(base_from_list);
                if (PyList_SetItem(new_bases, j, base_from_list) < 0) goto error;
#endif
            }
        }
#if CYTHON_ASSUME_SAFE_SIZE
        j = PyList_GET_SIZE(new_bases);
#else
        j = PyList_Size(new_bases);
        if (j < 0) goto error;
#endif
        if (PyList_SetSlice(new_bases, j, j, new_base) < 0) {
            goto error;
        }
        Py_DECREF(new_base);
    }
    if (!new_bases) {
        Py_INCREF(bases);
        return bases;
    }
    result = PyList_AsTuple(new_bases);
    Py_DECREF(new_bases);
#if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(base);
#endif
    return result;
error:
    Py_XDECREF(new_bases);
#if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(base);
#endif
    return NULL;
}

/* ClassMethod */
static PyObject* __Pyx_Method_ClassMethod(PyObject *method) {
#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM <= 0x05080000
    if (PyObject_TypeCheck(method, &PyWrapperDescr_Type)) {
        return PyClassMethod_New(method);
    }
#else
#if CYTHON_COMPILING_IN_PYPY
    if (PyMethodDescr_Check(method))
#else
    if (__Pyx_TypeCheck(method, &PyMethodDescr_Type))
#endif
    {
#if CYTHON_COMPILING_IN_LIMITED_API
        return PyErr_Format(
            PyExc_SystemError,
            "Cython cannot yet handle classmethod on a MethodDescriptorType (%S) in limited API mode. "
            "This is most likely a classmethod in a cdef class method with binding=False. "
            "Try setting 'binding' to True.",
            method);
#elif CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
        PyTypeObject *d_type = GraalPyDescrObject_GetType(method);
        return PyDescr_NewClassMethod(d_type, GraalPyMethodDescrObject_GetMethod(method));
#elif CYTHON_COMPILING_IN_GRAAL
        PyTypeObject *d_type = PyDescrObject_GetType(method);
        return PyDescr_NewClassMethod(d_type, PyMethodDescrObject_GetMethod(method));
#else
        PyMethodDescrObject *descr = (PyMethodDescrObject *)method;
        PyTypeObject *d_type = descr->d_common.d_type;
        return PyDescr_NewClassMethod(d_type, descr->d_method);
#endif
    }
#endif
#if !CYTHON_COMPILING_IN_LIMITED_API
    else if (PyMethod_Check(method)) {
        return PyClassMethod_New(PyMethod_GET_FUNCTION(method));
    }
    else {
        return PyClassMethod_New(method);
    }
#else
    {
        PyObject *func=NULL;
        PyObject *builtins, *classmethod, *classmethod_str, *result=NULL;
        if (__Pyx_TypeCheck(method, __pyx_mstate_global->__Pyx_CachedMethodType)) {
            func = PyObject_GetAttrString(method, "__func__");
            if (!func) goto bad;
        } else {
            func = method;
            Py_INCREF(func);
        }
        builtins = PyEval_GetBuiltins(); // borrowed
        if (unlikely(!builtins)) goto bad;
        classmethod_str = PyUnicode_FromString("classmethod");
        if (unlikely(!classmethod_str)) goto bad;
        classmethod = PyObject_GetItem(builtins, classmethod_str);
        Py_DECREF(classmethod_str);
        if (unlikely(!classmethod)) goto bad;
        result = PyObject_CallFunctionObjArgs(classmethod, func, NULL);
        Py_DECREF(classmethod);
        bad:
        Py_XDECREF(func);
        return result;
    }
#endif
}

/* CyFunctionClassCell */
static int __Pyx_CyFunction_InitClassCell(PyObject *cyfunctions, PyObject *classobj) {
    Py_ssize_t i, count = __Pyx_PyList_GET_SIZE(cyfunctions);
    #if !CYTHON_ASSUME_SAFE_SIZE
    if (unlikely(count < 0)) return -1;
    #endif
    for (i = 0; i < count; i++) {
        __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *)
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && !CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
            PyList_GET_ITEM(cyfunctions, i);
#else
            __Pyx_PySequence_ITEM(cyfunctions, i);
        if (unlikely(!m))
            return -1;
#endif
        __Pyx_CyFunction_SetClassObj(m, classobj);
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && !CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)
        Py_DECREF((PyObject*)m);
#endif
    }
    return 0;
}

/* ListPack */
static PyObject *__Pyx_PyList_Pack(Py_ssize_t n, ...) {
    va_list va;
    PyObject *l = PyList_New(n);
    va_start(va, n);
    if (unlikely(!l)) goto end;
    for (Py_ssize_t i=0; i<n; ++i) {
        PyObject *arg = va_arg(va, PyObject*);
        Py_INCREF(arg);
        if (__Pyx_PyList_SET_ITEM(l, i, arg) != (0)) {
            Py_CLEAR(l);
            goto end;
        }
    }
    end:
    va_end(va);
    return l;
}

/* GetNameInClass */
static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name) {
    PyObject *result;
    PyObject *dict;
    assert(PyType_Check(nmspace));
#if CYTHON_USE_TYPE_SLOTS
    dict = ((PyTypeObject*)nmspace)->tp_dict;
    Py_XINCREF(dict);
#else
    dict = PyObject_GetAttr(nmspace, __pyx_mstate_global->__pyx_n_u_dict);
#endif
    if (likely(dict)) {
        result = PyObject_GetItem(dict, name);
        Py_DECREF(dict);
        if (result) {
            return result;
        }
    }
    PyErr_Clear();
    __Pyx_GetModuleGlobalNameUncached(result, name);
    return result;
}

/* CLineInTraceback (used by AddTraceback) */
#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
#define __Pyx_PyProbablyModule_GetDict(o) __Pyx_XNewRef(PyModule_GetDict(o))
#elif !CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __Pyx_PyProbablyModule_GetDict(o) PyObject_GenericGetDict(o, NULL);
#else
PyObject* __Pyx_PyProbablyModule_GetDict(PyObject *o) {
    PyObject **dict_ptr = _PyObject_GetDictPtr(o);
    return dict_ptr ? __Pyx_XNewRef(*dict_ptr) : NULL;
}
#endif
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
    PyObject *use_cline = NULL;
    PyObject *ptype, *pvalue, *ptraceback;
    PyObject *cython_runtime_dict;
    CYTHON_MAYBE_UNUSED_VAR(tstate);
    if (unlikely(!__pyx_mstate_global->__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
    cython_runtime_dict = __Pyx_PyProbablyModule_GetDict(__pyx_mstate_global->__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, cython_runtime_dict,
            __Pyx_PyDict_SetDefault(cython_runtime_dict, __pyx_mstate_global->__pyx_n_u_cline_in_traceback, Py_False))
    }
    if (use_cline == NULL || use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    Py_XDECREF(use_cline);
    Py_XDECREF(cython_runtime_dict);
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache (used by AddTraceback) */
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static __Pyx_CachedCodeObjectType *__pyx__find_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line) {
    __Pyx_CachedCodeObjectType* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!code_cache->entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
    if (unlikely(pos >= code_cache->count) || unlikely(code_cache->entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = code_cache->entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line) {
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
    (void)__pyx__find_code_object;
    return NULL; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just miss.
#else
    struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_nonatomic_int_type old_count = __pyx_atomic_incr_acq_rel(&code_cache->accessor_count);
    if (old_count < 0) {
        __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
        return NULL;
    }
#endif
    __Pyx_CachedCodeObjectType *result = __pyx__find_code_object(code_cache, code_line);
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
#endif
    return result;
#endif
}
static void __pyx__insert_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line, __Pyx_CachedCodeObjectType* code_object)
{
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = code_cache->entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            code_cache->entries = entries;
            code_cache->max_count = 64;
            code_cache->count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
    if ((pos < code_cache->count) && unlikely(code_cache->entries[pos].code_line == code_line)) {
        __Pyx_CachedCodeObjectType* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_INCREF(code_object);
        Py_DECREF(tmp);
        return;
    }
    if (code_cache->count == code_cache->max_count) {
        int new_max = code_cache->max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            code_cache->entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        code_cache->entries = entries;
        code_cache->max_count = new_max;
    }
    for (i=code_cache->count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    code_cache->count++;
    Py_INCREF(code_object);
}
static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object) {
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
    (void)__pyx__insert_code_object;
    return; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just fail.
#else
    struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_nonatomic_int_type expected = 0;
    if (!__pyx_atomic_int_cmp_exchange(&code_cache->accessor_count, &expected, INT_MIN)) {
        return;
    }
#endif
    __pyx__insert_code_object(code_cache, code_line, code_object);
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_sub(&code_cache->accessor_count, INT_MIN);
#endif
#endif
}

/* AddTraceback */
#include "compile.h"
#include "frameobject.h"
#include "traceback.h"
#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API && !defined(PYPY_VERSION)
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
                                                       PyObject *firstlineno, PyObject *name) {
    PyObject *replace = NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
    replace = PyObject_GetAttrString(code, "replace");
    if (likely(replace)) {
        PyObject *result = PyObject_Call(replace, __pyx_mstate_global->__pyx_empty_tuple, scratch_dict);
        Py_DECREF(replace);
        return result;
    }
    PyErr_Clear();
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
    PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
    PyObject *exc_type, *exc_value, *exc_traceback;
    int success = 0;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
    }
    PyErr_Fetch(&exc_type, &exc_value, &exc_traceback);
    code_object = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!code_object) {
        code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
        if (unlikely(!code_object)) goto bad;
        py_py_line = PyLong_FromLong(py_line);
        if (unlikely(!py_py_line)) goto bad;
        if (c_line) {
            py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        } else {
            py_funcname = PyUnicode_FromString(funcname);
        }
        if (unlikely(!py_funcname)) goto bad;
        dict = PyDict_New();
        if (unlikely(!dict)) goto bad;
        {
            PyObject *old_code_object = code_object;
            code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
            Py_DECREF(old_code_object);
        }
        if (unlikely(!code_object)) goto bad;
        __pyx_insert_code_object(c_line ? -c_line : py_line, code_object);
    } else {
        dict = PyDict_New();
    }
    getframe = PySys_GetObject("_getframe");
    if (unlikely(!getframe)) goto bad;
    if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
    frame = PyEval_EvalCode(code_object, dict, dict);
    if (unlikely(!frame) || frame == Py_None) goto bad;
    success = 1;
  bad:
    PyErr_Restore(exc_type, exc_value, exc_traceback);
    Py_XDECREF(code_object);
    Py_XDECREF(py_py_line);
    Py_XDECREF(py_funcname);
    Py_XDECREF(dict);
    Py_XDECREF(replace);
    if (success) {
        PyTraceBack_Here(
            (struct _frame*)frame);
    }
    Py_XDECREF(frame);
}
#else
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = NULL;
    PyObject *py_funcname = NULL;
    if (c_line) {
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        funcname = PyUnicode_AsUTF8(py_funcname);
        if (!funcname) goto bad;
    }
    py_code = PyCode_NewEmpty(filename, funcname, py_line);
    Py_XDECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_funcname);
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject *ptype, *pvalue, *ptraceback;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) {
            /* If the code object creation fails, then we should clear the
               fetched exception references and propagate the new exception */
            Py_XDECREF(ptype);
            Py_XDECREF(pvalue);
            Py_XDECREF(ptraceback);
            goto bad;
        }
        __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_mstate_global->__pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}
#endif

/* CIntFromPyVerify */
#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* CheckUnpickleChecksum */
static void __Pyx_RaiseUnpickleChecksumError(long checksum, long checksum1, long checksum2, long checksum3, const char *members) {
    PyObject *pickle_module = PyImport_ImportModule("pickle");
    if (unlikely(!pickle_module)) return;
    PyObject *pickle_error = PyObject_GetAttrString(pickle_module, "PickleError");
    Py_DECREF(pickle_module);
    if (unlikely(!pickle_error)) return;
    if (checksum2 == checksum1) {
        PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x) = (%s))",
            checksum, checksum1, members);
    } else if (checksum3 == checksum2) {
        PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x, 0x%x) = (%s))",
            checksum, checksum1, checksum2, members);
    } else {
        PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x, 0x%x, 0x%x) = (%s))",
            checksum, checksum1, checksum2, checksum3, members);
    }
    Py_DECREF(pickle_error);
}
static int __Pyx_CheckUnpickleChecksum(long checksum, long checksum1, long checksum2, long checksum3, const char *members) {
    int found = 0;
    found |= checksum1 == checksum;
    found |= checksum2 == checksum;
    found |= checksum3 == checksum;
    if (likely(found))
        return 0;
    __Pyx_RaiseUnpickleChecksumError(checksum, checksum1, checksum2, checksum3, members);
    return -1;
}

/* CIntFromPy */
static CYTHON_INLINE size_t __Pyx_PyLong_As_size_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const size_t neg_one = (size_t) -1, const_zero = (size_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        size_t val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (size_t) -1;
        val = __Pyx_PyLong_As_size_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) >= 2 * PyLong_SHIFT)) {
                            return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) >= 3 * PyLong_SHIFT)) {
                            return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) >= 4 * PyLong_SHIFT)) {
                            return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (size_t) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(size_t) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(size_t) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x))
        } else if ((sizeof(size_t) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        size_t val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (size_t) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (size_t) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (size_t) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (size_t) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(size_t) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((size_t) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(size_t) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((size_t) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((size_t) 1) << (sizeof(size_t) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (size_t) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to size_t");
    return (size_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to size_t");
    return (size_t) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        int val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyLong_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (int) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(int) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(int) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
        } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        int val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (int) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (int) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (int) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (int) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((int) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((int) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (int) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uint32_t(uint32_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint32_t neg_one = (uint32_t) -1, const_zero = (uint32_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint32_t) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(uint32_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(uint32_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint32_t) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(uint32_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(uint32_t),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(uint32_t));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
static CYTHON_INLINE uint32_t __Pyx_PyLong_As_uint32_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint32_t neg_one = (uint32_t) -1, const_zero = (uint32_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        uint32_t val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (uint32_t) -1;
        val = __Pyx_PyLong_As_uint32_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(uint32_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(uint32_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) >= 2 * PyLong_SHIFT)) {
                            return (uint32_t) (((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(uint32_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) >= 3 * PyLong_SHIFT)) {
                            return (uint32_t) (((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(uint32_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) >= 4 * PyLong_SHIFT)) {
                            return (uint32_t) (((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (uint32_t) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(uint32_t) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(uint32_t) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(uint32_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(uint32_t) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (uint32_t) (((uint32_t)-1)*(((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(uint32_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (uint32_t) ((((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (uint32_t) (((uint32_t)-1)*(((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(uint32_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (uint32_t) ((((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (uint32_t) (((uint32_t)-1)*(((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(uint32_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (uint32_t) ((((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(uint32_t) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint32_t, long, PyLong_AsLong(x))
        } else if ((sizeof(uint32_t) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint32_t, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        uint32_t val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (uint32_t) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (uint32_t) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (uint32_t) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (uint32_t) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(uint32_t) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((uint32_t) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(uint32_t) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((uint32_t) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((uint32_t) 1) << (sizeof(uint32_t) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (uint32_t) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to uint32_t");
    return (uint32_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to uint32_t");
    return (uint32_t) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned int) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned int) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(unsigned int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
static CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        unsigned int val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (unsigned int) -1;
        val = __Pyx_PyLong_As_unsigned_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT)) {
                            return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT)) {
                            return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT)) {
                            return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (unsigned int) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(unsigned int) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                            return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                            return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                            return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                            return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) {
                            return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) {
                            return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(unsigned int) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x))
        } else if ((sizeof(unsigned int) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        unsigned int val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (unsigned int) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (unsigned int) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (unsigned int) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (unsigned int) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(unsigned int) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((unsigned int) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(unsigned int) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((unsigned int) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((unsigned int) 1) << (sizeof(unsigned int) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (unsigned int) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned int");
    return (unsigned int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned int");
    return (unsigned int) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From___pyx_anon_enum(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        long val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyLong_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (long) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(long) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(long) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
        } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        long val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (long) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (long) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (long) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (long) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((long) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((long) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (long) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_char(unsigned char value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned char neg_one = (unsigned char) -1, const_zero = (unsigned char) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned char) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(unsigned char) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned char) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned char),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(unsigned char));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uint16_t(uint16_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint16_t neg_one = (uint16_t) -1, const_zero = (uint16_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint16_t) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(uint16_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(uint16_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint16_t) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(uint16_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(uint16_t),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(uint16_t));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uint8_t(uint8_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint8_t neg_one = (uint8_t) -1, const_zero = (uint8_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint8_t) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(uint8_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(uint8_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint8_t) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(uint8_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(uint8_t),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(uint8_t));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_char(char value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const char neg_one = (char) -1, const_zero = (char) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(char) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(char) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(char) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(char),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(char));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uint64_t(uint64_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint64_t neg_one = (uint64_t) -1, const_zero = (uint64_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint64_t) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(uint64_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint64_t) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(uint64_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(uint64_t),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(uint64_t));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* UpdateUnpickledDict */
static int __Pyx__UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index) {
    PyObject *state_dict = __Pyx_PySequence_ITEM(state, index);
    if (unlikely(!state_dict)) {
        return -1;
    }
    int non_empty = PyObject_IsTrue(state_dict);
    if (non_empty == 0) {
        Py_DECREF(state_dict);
        return 0;
    } else if (unlikely(non_empty == -1)) {
        return -1;
    }
    PyObject *dict;
    #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
    dict = PyObject_GetAttrString(obj, "__dict__");
    #else
    dict = PyObject_GenericGetDict(obj, NULL);
    #endif
    if (unlikely(!dict)) {
        Py_DECREF(state_dict);
        return -1;
    }
    int result;
    if (likely(PyDict_CheckExact(dict))) {
        result = PyDict_Update(dict, state_dict);
    } else {
        PyObject *obj_result = __Pyx_PyObject_CallMethod1(dict, __pyx_mstate_global->__pyx_n_u_update, state_dict);
        if (likely(obj_result)) {
            Py_DECREF(obj_result);
            result = 0;
        } else {
            result = -1;
        }
    }
    Py_DECREF(state_dict);
    Py_DECREF(dict);
    return result;
}
static int __Pyx_UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index) {
    Py_ssize_t state_size = __Pyx_PyTuple_GET_SIZE(state);
    #if !CYTHON_ASSUME_SAFE_SIZE
    if (unlikely(state_size == -1)) return -1;
    #endif
    if (state_size <= index) {
        return 0;
    }
    return __Pyx__UpdateUnpickledDict(obj, state, index);
}

/* GetRuntimeVersion */
#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
void __Pyx_init_runtime_version(void) {
    if (__Pyx_cached_runtime_version == 0) {
        const char* rt_version = Py_GetVersion();
        unsigned long version = 0;
        unsigned long factor = 0x01000000UL;
        unsigned int digit = 0;
        int i = 0;
        while (factor) {
            while ('0' <= rt_version[i] && rt_version[i] <= '9') {
                digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
                ++i;
            }
            version += factor * digit;
            if (rt_version[i] != '.')
                break;
            digit = 0;
            factor >>= 8;
            ++i;
        }
        __Pyx_cached_runtime_version = version;
    }
}
#endif
static unsigned long __Pyx_get_runtime_version(void) {
#if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
    return Py_Version & ~0xFFUL;
#else
    return __Pyx_cached_runtime_version;
#endif
}

/* CStringEquals */
static CYTHON_INLINE int __Pyx_StrEq(const char *s1, const char *s2) {
    while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; }
    return *s1 == *s2;
}

/* CheckBinaryVersion */
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
    const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
    if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
        return 0;
    if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
        return 1;
    {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compile time Python version %d.%d "
                      "of module '%.100s' "
                      "%s "
                      "runtime version %d.%d",
                       (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
                       __Pyx_MODULE_NAME,
                       (allow_newer) ? "was newer than" : "does not match",
                       (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
       );
        return PyErr_WarnEx(NULL, message, 1);
    }
}

/* NewCodeObj */
#if CYTHON_COMPILING_IN_LIMITED_API
    static PyObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
                                       PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                       PyObject *fv, PyObject *cell, PyObject* fn,
                                       PyObject *name, int fline, PyObject *lnos) {
        PyObject *exception_table = NULL;
        PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
        #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
        PyObject *version_info;
        PyObject *py_minor_version = NULL;
        #endif
        long minor_version = 0;
        PyObject *type, *value, *traceback;
        PyErr_Fetch(&type, &value, &traceback);
        #if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
        minor_version = 11;
        #else
        if (!(version_info = PySys_GetObject("version_info"))) goto end;
        if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
        minor_version = PyLong_AsLong(py_minor_version);
        Py_DECREF(py_minor_version);
        if (minor_version == -1 && PyErr_Occurred()) goto end;
        #endif
        if (!(types_module = PyImport_ImportModule("types"))) goto end;
        if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
        if (minor_version <= 7) {
            (void)p;
            result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOOO", a, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else if (minor_version <= 10) {
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else {
            if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOOOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
        }
    end:
        Py_XDECREF(code_type);
        Py_XDECREF(exception_table);
        Py_XDECREF(types_module);
        if (type) {
            PyErr_Restore(type, value, traceback);
        }
        return result;
    }
#elif PY_VERSION_HEX >= 0x030B0000
  static PyCodeObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
                                         PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                         PyObject *fv, PyObject *cell, PyObject* fn,
                                         PyObject *name, int fline, PyObject *lnos) {
    PyCodeObject *result;
    result =
      #if PY_VERSION_HEX >= 0x030C0000
        PyUnstable_Code_NewWithPosOnlyArgs
      #else
        PyCode_NewWithPosOnlyArgs
      #endif
        (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, __pyx_mstate_global->__pyx_empty_bytes);
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030c00A1
    if (likely(result))
        result->_co_firsttraceable = 0;
    #endif
    return result;
  }
#elif !CYTHON_COMPILING_IN_PYPY
  #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
static PyObject* __Pyx_PyCode_New(
        const __Pyx_PyCode_New_function_description descr,
        PyObject * const *varnames,
        PyObject *filename,
        PyObject *funcname,
        PyObject *line_table,
        PyObject *tuple_dedup_map
) {
    PyObject *code_obj = NULL, *varnames_tuple_dedup = NULL, *code_bytes = NULL;
    Py_ssize_t var_count = (Py_ssize_t) descr.nlocals;
    PyObject *varnames_tuple = PyTuple_New(var_count);
    if (unlikely(!varnames_tuple)) return NULL;
    for (Py_ssize_t i=0; i < var_count; i++) {
        Py_INCREF(varnames[i]);
        if (__Pyx_PyTuple_SET_ITEM(varnames_tuple, i, varnames[i]) != (0)) goto done;
    }
    #if CYTHON_COMPILING_IN_LIMITED_API
    varnames_tuple_dedup = PyDict_GetItem(tuple_dedup_map, varnames_tuple);
    if (!varnames_tuple_dedup) {
        if (unlikely(PyDict_SetItem(tuple_dedup_map, varnames_tuple, varnames_tuple) < 0)) goto done;
        varnames_tuple_dedup = varnames_tuple;
    }
    #else
    varnames_tuple_dedup = PyDict_SetDefault(tuple_dedup_map, varnames_tuple, varnames_tuple);
    if (unlikely(!varnames_tuple_dedup)) goto done;
    #endif
    #if CYTHON_AVOID_BORROWED_REFS
    Py_INCREF(varnames_tuple_dedup);
    #endif
    if (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table != NULL && !CYTHON_COMPILING_IN_GRAAL) {
        Py_ssize_t line_table_length = __Pyx_PyBytes_GET_SIZE(line_table);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(line_table_length == -1)) goto done;
        #endif
        Py_ssize_t code_len = (line_table_length * 2 + 4) & ~3LL;
        code_bytes = PyBytes_FromStringAndSize(NULL, code_len);
        if (unlikely(!code_bytes)) goto done;
        char* c_code_bytes = PyBytes_AsString(code_bytes);
        if (unlikely(!c_code_bytes)) goto done;
        memset(c_code_bytes, 0, (size_t) code_len);
    }
    code_obj = (PyObject*) __Pyx__PyCode_New(
        (int) descr.argcount,
        (int) descr.num_posonly_args,
        (int) descr.num_kwonly_args,
        (int) descr.nlocals,
        0,
        (int) descr.flags,
        code_bytes ? code_bytes : __pyx_mstate_global->__pyx_empty_bytes,
        __pyx_mstate_global->__pyx_empty_tuple,
        __pyx_mstate_global->__pyx_empty_tuple,
        varnames_tuple_dedup,
        __pyx_mstate_global->__pyx_empty_tuple,
        __pyx_mstate_global->__pyx_empty_tuple,
        filename,
        funcname,
        (int) descr.first_line,
        (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table) ? line_table : __pyx_mstate_global->__pyx_empty_bytes
    );
done:
    Py_XDECREF(code_bytes);
    #if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(varnames_tuple_dedup);
    #endif
    Py_DECREF(varnames_tuple);
    return code_obj;
}

/* DecompressString */
static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo) {
    PyObject *module = NULL, *decompress, *compressed_bytes, *decompressed;
    const char* module_name = algo == 3 ? "compression.zstd" : algo == 2 ? "bz2" : "zlib";
    PyObject *methodname = PyUnicode_FromString("decompress");
    if (unlikely(!methodname)) return NULL;
    #if __PYX_LIMITED_VERSION_HEX >= 0x030e0000
    if (algo == 3) {
        PyObject *fromlist = Py_BuildValue("[O]", methodname);
        if (unlikely(!fromlist)) goto bad;
        module = PyImport_ImportModuleLevel("compression.zstd", NULL, NULL, fromlist, 0);
        Py_DECREF(fromlist);
    } else
    #endif
        module = PyImport_ImportModule(module_name);
    if (unlikely(!module)) goto import_failed;
    decompress = PyObject_GetAttr(module, methodname);
    if (unlikely(!decompress)) goto import_failed;
    {
        #ifdef __cplusplus
            char *memview_bytes = const_cast<char*>(s);
        #else
            #if defined(__clang__)
              #pragma clang diagnostic push
              #pragma clang diagnostic ignored "-Wcast-qual"
            #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
              #pragma GCC diagnostic push
              #pragma GCC diagnostic ignored "-Wcast-qual"
            #endif
            char *memview_bytes = (char*) s;
            #if defined(__clang__)
              #pragma clang diagnostic pop
            #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
              #pragma GCC diagnostic pop
            #endif
        #endif
        #if CYTHON_COMPILING_IN_LIMITED_API && !defined(PyBUF_READ)
        int memview_flags = 0x100;
        #else
        int memview_flags = PyBUF_READ;
        #endif
        compressed_bytes = PyMemoryView_FromMemory(memview_bytes, length, memview_flags);
    }
    if (unlikely(!compressed_bytes)) {
        Py_DECREF(decompress);
        goto bad;
    }
    decompressed = PyObject_CallFunctionObjArgs(decompress, compressed_bytes, NULL);
    Py_DECREF(compressed_bytes);
    Py_DECREF(decompress);
    Py_DECREF(module);
    Py_DECREF(methodname);
    return decompressed;
import_failed:
    PyErr_Format(PyExc_ImportError,
        "Failed to import '%.20s.decompress' - cannot initialise module strings. "
        "String compression was configured with the C macro 'CYTHON_COMPRESS_STRINGS=%d'.",
        module_name, algo);
bad:
    Py_XDECREF(module);
    Py_DECREF(methodname);
    return NULL;
}

#include <string.h>
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
    size_t len = strlen(s);
    if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
        PyErr_SetString(PyExc_OverflowError, "byte string is too long");
        return -1;
    }
    return (Py_ssize_t) len;
}
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return PyByteArray_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if CYTHON_COMPILING_IN_LIMITED_API
    {
        const char* result;
        Py_ssize_t unicode_length;
        CYTHON_MAYBE_UNUSED_VAR(unicode_length); // only for __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
        if (unlikely(PyArg_Parse(o, "s#", &result, length) < 0)) return NULL;
        #else
        result = PyUnicode_AsUTF8AndSize(o, length);
        #endif
        #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        unicode_length = PyUnicode_GetLength(o);
        if (unlikely(unicode_length < 0)) return NULL;
        if (unlikely(unicode_length != *length)) {
            PyUnicode_AsASCIIString(o);
            return NULL;
        }
        #endif
        return result;
    }
#else
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
#endif
}
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
    if (PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
    if (PyByteArray_Check(o)) {
#if (CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS) || (CYTHON_COMPILING_IN_PYPY && (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)))
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
#else
        *length = PyByteArray_Size(o);
        if (*length == -1) return NULL;
        return PyByteArray_AsString(o);
#endif
    } else
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_LongWrongResultType(PyObject* result) {
    __Pyx_TypeName result_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(result));
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ").  "
                "The ability to return an instance of a strict subclass of int is deprecated, "
                "and may be removed in a future version of Python.",
                result_type_name)) {
            __Pyx_DECREF_TypeName(result_type_name);
            Py_DECREF(result);
            return NULL;
        }
        __Pyx_DECREF_TypeName(result_type_name);
        return result;
    }
    PyErr_Format(PyExc_TypeError,
                 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ")",
                 result_type_name);
    __Pyx_DECREF_TypeName(result_type_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  PyObject *res = NULL;
  if (likely(PyLong_Check(x)))
      return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  if (likely(m && m->nb_int)) {
      res = m->nb_int(x);
  }
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
      res = PyNumber_Long(x);
  }
#endif
  if (likely(res)) {
      if (unlikely(!PyLong_CheckExact(res))) {
          return __Pyx_PyNumber_LongWrongResultType(res);
      }
  }
  else if (!PyErr_Occurred()) {
      PyErr_SetString(PyExc_TypeError,
                      "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(__Pyx_PyLong_IsCompact(b))) {
        return __Pyx_PyLong_CompactValue(b);
    } else {
      const digit* digits = __Pyx_PyLong_Digits(b);
      const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyLong_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
    return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
  } else {
    Py_ssize_t ival;
    PyObject *x;
    x = PyNumber_Index(o);
    if (!x) return -1;
    ival = PyLong_AsLong(x);
    Py_DECREF(x);
    return ival;
  }
}
static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b) {
    CYTHON_UNUSED_VAR(b);
    return __Pyx_NewRef(Py_None);
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return __Pyx_NewRef(b ? Py_True: Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t ival) {
    return PyLong_FromSize_t(ival);
}


/* MultiPhaseInitModuleState */
#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
#ifndef CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
#if (CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX >= 0x030C0000)
  #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 1
#else
  #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 0
#endif
#endif
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE && !CYTHON_ATOMICS
#error "Module state with PEP489 requires atomics. Currently that's one of\
 C11, C++11, gcc atomic intrinsics or MSVC atomic intrinsics"
#endif
#if !CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
#define __Pyx_ModuleStateLookup_Lock()
#define __Pyx_ModuleStateLookup_Unlock()
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
static PyMutex __Pyx_ModuleStateLookup_mutex = {0};
#define __Pyx_ModuleStateLookup_Lock() PyMutex_Lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() PyMutex_Unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(__cplusplus) && __cplusplus >= 201103L
#include <mutex>
static std::mutex __Pyx_ModuleStateLookup_mutex;
#define __Pyx_ModuleStateLookup_Lock() __Pyx_ModuleStateLookup_mutex.lock()
#define __Pyx_ModuleStateLookup_Unlock() __Pyx_ModuleStateLookup_mutex.unlock()
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201112L) && !defined(__STDC_NO_THREADS__)
#include <threads.h>
static mtx_t __Pyx_ModuleStateLookup_mutex;
static once_flag __Pyx_ModuleStateLookup_mutex_once_flag = ONCE_FLAG_INIT;
static void __Pyx_ModuleStateLookup_initialize_mutex(void) {
    mtx_init(&__Pyx_ModuleStateLookup_mutex, mtx_plain);
}
#define __Pyx_ModuleStateLookup_Lock()\
  call_once(&__Pyx_ModuleStateLookup_mutex_once_flag, __Pyx_ModuleStateLookup_initialize_mutex);\
  mtx_lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() mtx_unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(HAVE_PTHREAD_H)
#include <pthread.h>
static pthread_mutex_t __Pyx_ModuleStateLookup_mutex = PTHREAD_MUTEX_INITIALIZER;
#define __Pyx_ModuleStateLookup_Lock() pthread_mutex_lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() pthread_mutex_unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(_WIN32)
#include <Windows.h>  // synchapi.h on its own doesn't work
static SRWLOCK __Pyx_ModuleStateLookup_mutex = SRWLOCK_INIT;
#define __Pyx_ModuleStateLookup_Lock() AcquireSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() ReleaseSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
#else
#error "No suitable lock available for CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE.\
 Requires C standard >= C11, or C++ standard >= C++11,\
 or pthreads, or the Windows 32 API, or Python >= 3.13."
#endif
typedef struct {
    int64_t id;
    PyObject *module;
} __Pyx_InterpreterIdAndModule;
typedef struct {
    char interpreter_id_as_index;
    Py_ssize_t count;
    Py_ssize_t allocated;
    __Pyx_InterpreterIdAndModule table[1];
} __Pyx_ModuleStateLookupData;
#define __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE 32
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static __pyx_atomic_int_type __Pyx_ModuleStateLookup_read_counter = 0;
#endif
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static __pyx_atomic_ptr_type __Pyx_ModuleStateLookup_data = 0;
#else
static __Pyx_ModuleStateLookupData* __Pyx_ModuleStateLookup_data = NULL;
#endif
static __Pyx_InterpreterIdAndModule* __Pyx_State_FindModuleStateLookupTableLowerBound(
        __Pyx_InterpreterIdAndModule* table,
        Py_ssize_t count,
        int64_t interpreterId) {
    __Pyx_InterpreterIdAndModule* begin = table;
    __Pyx_InterpreterIdAndModule* end = begin + count;
    if (begin->id == interpreterId) {
        return begin;
    }
    while ((end - begin) > __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
        __Pyx_InterpreterIdAndModule* halfway = begin + (end - begin)/2;
        if (halfway->id == interpreterId) {
            return halfway;
        }
        if (halfway->id < interpreterId) {
            begin = halfway;
        } else {
            end = halfway;
        }
    }
    for (; begin < end; ++begin) {
        if (begin->id >= interpreterId) return begin;
    }
    return begin;
}
static PyObject *__Pyx_State_FindModule(CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return NULL;
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData* data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
    {
        __pyx_atomic_incr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
        if (likely(data)) {
            __Pyx_ModuleStateLookupData* new_data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_acquire(&__Pyx_ModuleStateLookup_data);
            if (likely(data == new_data)) {
                goto read_finished;
            }
        }
        __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
        __Pyx_ModuleStateLookup_Lock();
        __pyx_atomic_incr_relaxed(&__Pyx_ModuleStateLookup_read_counter);
        data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
        __Pyx_ModuleStateLookup_Unlock();
    }
  read_finished:;
#else
    __Pyx_ModuleStateLookupData* data = __Pyx_ModuleStateLookup_data;
#endif
    __Pyx_InterpreterIdAndModule* found = NULL;
    if (unlikely(!data)) goto end;
    if (data->interpreter_id_as_index) {
        if (interpreter_id < data->count) {
            found = data->table+interpreter_id;
        }
    } else {
        found = __Pyx_State_FindModuleStateLookupTableLowerBound(
            data->table, data->count, interpreter_id);
    }
  end:
    {
        PyObject *result=NULL;
        if (found && found->id == interpreter_id) {
            result = found->module;
        }
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
        __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
#endif
        return result;
    }
}
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static void __Pyx_ModuleStateLookup_wait_until_no_readers(void) {
    while (__pyx_atomic_load(&__Pyx_ModuleStateLookup_read_counter) != 0);
}
#else
#define __Pyx_ModuleStateLookup_wait_until_no_readers()
#endif
static int __Pyx_State_AddModuleInterpIdAsIndex(__Pyx_ModuleStateLookupData **old_data, PyObject* module, int64_t interpreter_id) {
    Py_ssize_t to_allocate = (*old_data)->allocated;
    while (to_allocate <= interpreter_id) {
        if (to_allocate == 0) to_allocate = 1;
        else to_allocate *= 2;
    }
    __Pyx_ModuleStateLookupData *new_data = *old_data;
    if (to_allocate != (*old_data)->allocated) {
         new_data = (__Pyx_ModuleStateLookupData *)realloc(
            *old_data,
            sizeof(__Pyx_ModuleStateLookupData)+(to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
        if (!new_data) {
            PyErr_NoMemory();
            return -1;
        }
        for (Py_ssize_t i = new_data->allocated; i < to_allocate; ++i) {
            new_data->table[i].id = i;
            new_data->table[i].module = NULL;
        }
        new_data->allocated = to_allocate;
    }
    new_data->table[interpreter_id].module = module;
    if (new_data->count < interpreter_id+1) {
        new_data->count = interpreter_id+1;
    }
    *old_data = new_data;
    return 0;
}
static void __Pyx_State_ConvertFromInterpIdAsIndex(__Pyx_ModuleStateLookupData *data) {
    __Pyx_InterpreterIdAndModule *read = data->table;
    __Pyx_InterpreterIdAndModule *write = data->table;
    __Pyx_InterpreterIdAndModule *end = read + data->count;
    for (; read<end; ++read) {
        if (read->module) {
            write->id = read->id;
            write->module = read->module;
            ++write;
        }
    }
    data->count = write - data->table;
    for (; write<end; ++write) {
        write->id = 0;
        write->module = NULL;
    }
    data->interpreter_id_as_index = 0;
}
static int __Pyx_State_AddModule(PyObject* module, CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return -1;
    int result = 0;
    __Pyx_ModuleStateLookup_Lock();
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData *old_data = (__Pyx_ModuleStateLookupData *)
            __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
#else
    __Pyx_ModuleStateLookupData *old_data = __Pyx_ModuleStateLookup_data;
#endif
    __Pyx_ModuleStateLookupData *new_data = old_data;
    if (!new_data) {
        new_data = (__Pyx_ModuleStateLookupData *)calloc(1, sizeof(__Pyx_ModuleStateLookupData));
        if (!new_data) {
            result = -1;
            PyErr_NoMemory();
            goto end;
        }
        new_data->allocated = 1;
        new_data->interpreter_id_as_index = 1;
    }
    __Pyx_ModuleStateLookup_wait_until_no_readers();
    if (new_data->interpreter_id_as_index) {
        if (interpreter_id < __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
            result = __Pyx_State_AddModuleInterpIdAsIndex(&new_data, module, interpreter_id);
            goto end;
        }
        __Pyx_State_ConvertFromInterpIdAsIndex(new_data);
    }
    {
        Py_ssize_t insert_at = 0;
        {
            __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
                new_data->table, new_data->count, interpreter_id);
            assert(lower_bound);
            insert_at = lower_bound - new_data->table;
            if (unlikely(insert_at < new_data->count && lower_bound->id == interpreter_id)) {
                lower_bound->module = module;
                goto end;  // already in table, nothing more to do
            }
        }
        if (new_data->count+1 >= new_data->allocated) {
            Py_ssize_t to_allocate = (new_data->count+1)*2;
            new_data =
                (__Pyx_ModuleStateLookupData*)realloc(
                    new_data,
                    sizeof(__Pyx_ModuleStateLookupData) +
                    (to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
            if (!new_data) {
                result = -1;
                new_data = old_data;
                PyErr_NoMemory();
                goto end;
            }
            new_data->allocated = to_allocate;
        }
        ++new_data->count;
        int64_t last_id = interpreter_id;
        PyObject *last_module = module;
        for (Py_ssize_t i=insert_at; i<new_data->count; ++i) {
            int64_t current_id = new_data->table[i].id;
            new_data->table[i].id = last_id;
            last_id = current_id;
            PyObject *current_module = new_data->table[i].module;
            new_data->table[i].module = last_module;
            last_module = current_module;
        }
    }
  end:
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, new_data);
#else
    __Pyx_ModuleStateLookup_data = new_data;
#endif
    __Pyx_ModuleStateLookup_Unlock();
    return result;
}
static int __Pyx_State_RemoveModule(CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return -1;
    __Pyx_ModuleStateLookup_Lock();
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData *data = (__Pyx_ModuleStateLookupData *)
            __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
#else
    __Pyx_ModuleStateLookupData *data = __Pyx_ModuleStateLookup_data;
#endif
    if (data->interpreter_id_as_index) {
        if (interpreter_id < data->count) {
            data->table[interpreter_id].module = NULL;
        }
        goto done;
    }
    {
        __Pyx_ModuleStateLookup_wait_until_no_readers();
        __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
            data->table, data->count, interpreter_id);
        if (!lower_bound) goto done;
        if (lower_bound->id != interpreter_id) goto done;
        __Pyx_InterpreterIdAndModule *end = data->table+data->count;
        for (;lower_bound<end-1; ++lower_bound) {
            lower_bound->id = (lower_bound+1)->id;
            lower_bound->module = (lower_bound+1)->module;
        }
    }
    --data->count;
    if (data->count == 0) {
        free(data);
        data = NULL;
    }
  done:
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, data);
#else
    __Pyx_ModuleStateLookup_data = data;
#endif
    __Pyx_ModuleStateLookup_Unlock();
    return 0;
}
#endif

/* #### Code section: utility_code_pragmas_end ### */
#ifdef _MSC_VER
#pragma warning( pop )
#endif



/* #### Code section: end ### */
#endif /* Py_PYTHON_H */
